mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Update coding rules.
Originally committed as revision 2920 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
8066e59fa4
commit
cb6e87c15a
@ -925,9 +925,40 @@ to send your patches to the ffmpeg mailing list.
|
||||
|
||||
@section Coding Rules
|
||||
|
||||
ffmpeg is programmed in ANSI C language. GCC extensions are
|
||||
tolerated. Indent size is 4. The TAB character should not be used.
|
||||
ffmpeg is programmed in the ISO C90 language with a few additional
|
||||
features from ISO C99, namely:
|
||||
@itemize @bullet
|
||||
@item
|
||||
the @samp{inline} keyword;
|
||||
@item
|
||||
@samp{//} comments;
|
||||
@item
|
||||
designated struct initializers (@samp{struct s x = @{ .i = 17 @};})
|
||||
@item
|
||||
compound literals (@samp{x = (struct s) { 17, 23 @};})
|
||||
@end itemize
|
||||
|
||||
These features are supported by all compilers we care about, so we won't
|
||||
accept patches to remove their use unless they absolutely don't impair
|
||||
clarity and performance.
|
||||
|
||||
All code must compile with gcc 2.95 and gcc 3.3. Currently, ffmpeg also
|
||||
compiles with several other compilers, such as the Compaq ccc compiler
|
||||
or Sun Studio 9, and we would like to keep it that way unless it would
|
||||
be exceedingly involved. To ensure compatibility, please don't use any
|
||||
additional C99 features or gcc extensions. Watch out especially for:
|
||||
@itemize @bullet
|
||||
@item
|
||||
mixing statements and declarations;
|
||||
@item
|
||||
@samp{long long} (use @samp{int64_t} instead);
|
||||
@item
|
||||
@samp{__attribute__} not protected by @samp{#ifdef __GNUC__} or similar;
|
||||
@item
|
||||
gcc statement expressions (@samp{(x = (@{ int y = 4; y; @})}).
|
||||
@end itemize
|
||||
|
||||
Indent size is 4. The TAB character should not be used.
|
||||
The presentation is the one specified by 'indent -i4 -kr'.
|
||||
|
||||
Main priority in ffmpeg is simplicity and small code size (=less
|
||||
|
Loading…
Reference in New Issue
Block a user