should omit a null-pointer check. We find that this usually makes
code easier to read.
+Functions in .c files should not normally be marked "inline", because
+it does not usually help code generation and it does suppress
+compilers warnings about unused functions. (Functions defined in .h
+usually should be marked inline.)
+
FUNCTION PROTOTYPES
C DIALECT
- Some C99 features are OK because they are widely implemented even in
-older compilers:
+ Most C99 features are OK because they are widely implemented:
* Flexible array members (e.g. struct { int foo[]; }).
only take on the values 0 or 1, because this behavior can't be
simulated on C89 compilers.
- 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};").
+ * Designated initializers (e.g. "struct foo foo = {.a = 1};" and
+ "int a[] = {[2] = 5};").
- * Don't mix declarations and code within a block.
+ * Mixing of declarations and code within a block. Please use this
+ judiciously; keep declarations nicely grouped together in the
+ beginning of a block if possible.
- * Don't use declarations in iteration statements (e.g. don't write
+ * Use of declarations in iteration statements (e.g.
"for (int i = 0; i < 10; i++)").
- * Don't put a trailing comma in an enum declaration (e.g. don't
- write "enum { x = 1, };").
+ * Use of a trailing comma in an enum declaration (e.g.
+ "enum { x = 1, };").
As a matter of style, avoid // comments.