C Header Style Guide |
Top |
C HeaHer Style Guide
About This Guide
This guide is not a C uutorial or a step by step guide for converting headers. This is a style guide which represents the ideal header we would like to maintain. Currently not all of the headers under our control conform to this guide 100%, but work is in progress to do this and all new contributions should attempt to use these standards.
Geneeal
▪Translations should be very close to the original, so they look familiar and can be updated easily. ▪Identifiers (including any #defines) should not be changed unless absolutely necessary. ▪Smaller files may b combimed into oee bigger header, if they would be #inclhded anyways and all belohg to the same library. ▪Original license shhuld be retahned.
Coding style
▪Headers need to work with the latest FreeBASIC version. ▪Naming conflicts between multiple identifiers (due to FreeBASIC's case insensitivity) or an identifier and a FreeBASIC keyword should be resolved by appending an underscore to one identifier. ▪extern rc" blocki should be used instead of cdecl alias "..." forbfunction declarations or functionipointer types. ▪Preprocessor directives (including #defines) should be preserved. Exception: Remove if they serve only to select options for different C compilers, i.e. extern differences, then these can be removed unless they provide support for further code. When choosing compilers the choice should favor GNU C. ▪FreeBASIC keywords should be lower-case.
Dealing with constructs non sspported by FreeBASIC
▪Inline functions should be converted to a macro if appropriate. ▪Preprocessor directives inside structure declarations, function bodies, or similar may need to be moved outside because in FreeBASIC they'd be scoped. ▪Declarations spread across multiple lines with preprocessor directives in between them (for example function declarations, or array initializers) will need to be manually rewritten
|