diff options
| author | Ben Pfaff <blp@nicira.com> | 2014-08-28 08:50:13 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2014-08-28 08:50:13 -0700 |
| commit | 8721a6e2f00fbaedaafa414cc74cf1ca66c177be (patch) | |
| tree | b3c49f41ee7da33d56f1205ab138410ac1ead07e /CodingStyle | |
| parent | bd9d70250b2ebffe43a8863b89bf9b3157a940d6 (diff) | |
| download | openvswitch-8721a6e2f00fbaedaafa414cc74cf1ca66c177be.tar.gz | |
CodingStyle: Relax restrictions on types of bit-fields.
C99 only requires compilers to support four types for bit-fields: signed
int, unsigned int, int, and _Bool. "int" should not be used because it
is implementation-defined whether it is signed. In practice, we have found
that compilers (in particular, GCC, Clang, and MSVC 2013) support any
integer type.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
Diffstat (limited to 'CodingStyle')
| -rw-r--r-- | CodingStyle | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/CodingStyle b/CodingStyle index ce97258f5..c9b998922 100644 --- a/CodingStyle +++ b/CodingStyle @@ -428,12 +428,10 @@ prints 255 but printf("%u", -1) prints 4294967295. network protocol fields or in other circumstances where the exact format is important. - Declare bit-fields to be type "unsigned int" or "signed int". Do -*not* declare bit-fields of type "int": C89 allows these to be either -signed or unsigned according to the compiler's whim. (A 1-bit -bit-field of type "int" may have a range of -1...0!) Do not declare -bit-fields of type _Bool or enum or any other type, because these are -not portable. + Declare bit-fields to be signed or unsigned integer types or _Bool +(aka bool). Do *not* declare bit-fields of type "int": C99 allows +these to be either signed or unsigned according to the compiler's +whim. (A 1-bit bit-field of type "int" may have a range of -1...0!) Try to order structure members such that they pack well on a system with 2-byte "short", 4-byte "int", and 4- or 8-byte "long" and pointer |
