summaryrefslogtreecommitdiff
path: root/CodingStyle
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2014-08-28 08:50:13 -0700
committerBen Pfaff <blp@nicira.com>2014-08-28 08:50:13 -0700
commit8721a6e2f00fbaedaafa414cc74cf1ca66c177be (patch)
treeb3c49f41ee7da33d56f1205ab138410ac1ead07e /CodingStyle
parentbd9d70250b2ebffe43a8863b89bf9b3157a940d6 (diff)
downloadopenvswitch-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--CodingStyle10
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