Difference between revisions of "Code Conventions"
Line 25: | Line 25: | ||
=== A few words about white spaces === | === A few words about white spaces === | ||
+ | ==== Indentation ==== | ||
− | + | '''Never''' use tabs in the source (you're entitled to use them in the Makefile :-). | |
− | + | Use set expandtab under vim or the equivalent under emacs. | |
+ | |||
+ | Indents are 4 spaces long. | ||
+ | |||
+ | ==== Spaces ==== | ||
+ | |||
+ | Put spaces before and after operators, and inside brackets. For instance : | ||
for( i = 0; i < 12; i++, j += 42 ); | for( i = 0; i < 12; i++, j += 42 ); | ||
− | + | ==== Braces ==== | |
+ | |||
+ | Leave braces alone on their lines (GNU style). For instance : | ||
if( i_es == 42 ) | if( i_es == 42 ) | ||
Line 38: | Line 47: | ||
p_buffer[0] = 0x12; | p_buffer[0] = 0x12; | ||
} | } | ||
+ | |||
+ | === Comments === | ||
Revision as of 14:08, 7 March 2007
Contents
Code conventions
Function naming
All functions are named accordingly : module name (in lower case) + _ + function name (in mixed case, without underscores). For instance : intf_FooFunction. Static functions don't need usage of the module name.
Variable naming
Hungarian notations are used, that means we have the following prefixes :
* i_ for integers (sometimes l_ for long integers) ; * b_ for booleans ; * d_ for doubles (sometimes f_ for floats) ; * pf_ for function pointers ; * psz_ for a Pointer to a String terminated by a Zero (C-string) ; * More generally, we add a p when the variable is a pointer to a type.
If one variable has no basic type (for instance a complex structure), don't put any prefix (except p_ if it's a pointer). After one prefix, put an explicit variable name in lower case. If several words are required, join them with an underscore (no mixed case). Examples :
* data_packet_t * p_buffer; * char psz_msg_date[42]; * int pi_es_refcount[MAX_ES]; * void (* pf_next_data_packet)( int * );
A few words about white spaces
Indentation
Never use tabs in the source (you're entitled to use them in the Makefile :-).
Use set expandtab under vim or the equivalent under emacs.
Indents are 4 spaces long.
Spaces
Put spaces before and after operators, and inside brackets. For instance :
for( i = 0; i < 12; i++, j += 42 );
Braces
Leave braces alone on their lines (GNU style). For instance :
if( i_es == 42 ) { p_buffer[0] = 0x12; }
Comments
ANSI C-style comments /* ... */ are more commonly used for historical reasons, though C++/C99 comments are tolerated.