aboutsummaryrefslogtreecommitdiff
path: root/CodingStyle
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-11-10 09:39:27 -0800
committerBen Pfaff <blp@nicira.com>2010-11-10 10:55:10 -0800
commitc214278b0d0e9b574a1f505f14a47d3d8d81aea1 (patch)
tree99193ec768d893be2548d214c1d0e5fe66c5a8f6 /CodingStyle
parent14c3b13622af672ca0868dcab4e0e4c591dd70fb (diff)
CodingStyle: Clarify C dialect section and add rationale.
Requested-by: Ethan Jackson <ethan@nicira.com>
Diffstat (limited to 'CodingStyle')
-rw-r--r--CodingStyle17
1 files changed, 11 insertions, 6 deletions
diff --git a/CodingStyle b/CodingStyle
index 2ee189fa..b0aeb4e6 100644
--- a/CodingStyle
+++ b/CodingStyle
@@ -474,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[]; }).
@@ -491,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};").
@@ -505,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.