X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=CodingStyle;h=b0aeb4e61dcf7452b1d3faf4eb7875eb367b5803;hb=refs%2Fheads%2Fbranch-1.5;hp=bbb492e3247f4d500cb29ce6a63c0a5d28f28d48;hpb=ede818437a16d1cf50c5e8f285593f85cd6f2513;p=sliver-openvswitch.git diff --git a/CodingStyle b/CodingStyle index bbb492e32..b0aeb4e61 100644 --- a/CodingStyle +++ b/CodingStyle @@ -156,6 +156,12 @@ parameters and their corresponding size parameters should be paired. ... } +Functions that destroy an instance of a dynamically-allocated type +should accept and ignore a null pointer argument. Code that calls +such a function (including the C standard library function free()) +should omit a null-pointer check. We find that this usually makes +code easier to read. + FUNCTION PROTOTYPES @@ -468,9 +474,8 @@ global variables. C DIALECT - Try to avoid using GCC extensions where possible. - - Some C99 extensions are OK: + Some C99 features are OK because they are widely implemented even in +older compilers: * Flexible array members (e.g. struct { int foo[]; }). @@ -485,9 +490,8 @@ C DIALECT only take on the values 0 or 1, because this behavior can't be simulated on C89 compilers. - Don't use other C99 extensions, and especially: - - * Don't use // comments. + Don't use other C99 features that are not widely implemented in +older compilers: * Don't use designated initializers (e.g. don't write "struct foo foo = {.a = 1};" or "int a[] = {[2] = 5};"). @@ -499,3 +503,10 @@ C DIALECT * Don't put a trailing comma in an enum declaration (e.g. don't write "enum { x = 1, };"). + + As a matter of style, avoid // comments. + + Avoid using GCC extensions unless you also add a fallback for +non-GCC compilers. You can, however, use GCC extensions and C99 +features in code that compiles only on GNU/Linux (such as +lib/netdev-linux.c), because GCC is the system compiler there.