diff options
author | skidd13 <skidd13@openttd.org> | 2007-12-03 09:19:19 +0000 |
---|---|---|
committer | skidd13 <skidd13@openttd.org> | 2007-12-03 09:19:19 +0000 |
commit | 5d74f2ced4206725724d92fd8a5a22f9e1ce8b14 (patch) | |
tree | ffda3073f527cfcef5eb31264655b305398d87ab /src/macros.h | |
parent | 2b372e7e7b7aa04a45dd218681a3f1ed76d812ce (diff) | |
download | openttd-5d74f2ced4206725724d92fd8a5a22f9e1ce8b14.tar.xz |
(svn r11564) -Codechange: Increase the usage of the for_each_bit macro and rename it fitting to the naming style
Diffstat (limited to 'src/macros.h')
-rw-r--r-- | src/macros.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/macros.h b/src/macros.h index 51329ab19..5ec7b96e0 100644 --- a/src/macros.h +++ b/src/macros.h @@ -20,10 +20,20 @@ */ #define IS_CUSTOM_SPRITE(sprite) ((sprite) >= SPR_SIGNALS_BASE) - -#define for_each_bit(_i, _b) \ - for (_i = 0; _b != 0; _i++, _b >>= 1) \ - if (_b & 1) +/** + * Do an operation for each set set bit in a value. + * + * This macros is used to do an operation for each set + * bit in a variable. The first variable can be reused + * in the operation due to it's the bit position counter. + * The second variable will be cleared during the usage + * + * @param i The position counter + * @param b The value which we check for set bits + */ +#define FOR_EACH_SET_BIT(i, b) \ + for (i = 0; b != 0; i++, b >>= 1) \ + if (b & 1) static inline uint16 ReadLE16Aligned(const void* x) |