X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=CodingStyle;h=b0aeb4e61dcf7452b1d3faf4eb7875eb367b5803;hb=refs%2Fheads%2Fbranch-1.5;hp=f4765ad8dc36e4e926830619c704f4c4a7897652;hpb=be2c418b73fcb6c606725d84c18b0ad618082c75;p=sliver-openvswitch.git diff --git a/CodingStyle b/CodingStyle index f4765ad8d..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 @@ -412,13 +418,8 @@ Exception 1: Put a space after (but not before) the "sizeof" keyword. Exception 2: Put a space between the () used in a cast and the expression whose type is cast: (void *) 0. - Break long lines before binary operators and the ternary operators ? -and :, rather than after them, e.g. - - if (first_long_condition() || second_long_condition() - || third_long_condition()) - -and + Break long lines before the ternary operators ? and :, rather than +after them, e.g. return (out_port != VIGP_CONTROL_PATH ? alpheus_output_port(dp, skb, out_port) @@ -473,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[]; }). @@ -490,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};"). @@ -504,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.