design:coding_style_guide
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
design:coding_style_guide [2025/05/04 06:25] – asie | design:coding_style_guide [2025/05/05 15:17] (current) – [Commenting] asie | ||
---|---|---|---|
Line 15: | Line 15: | ||
* Global C function names are written with '' | * Global C function names are written with '' | ||
* Global C/C++ macro definitions are written with '' | * Global C/C++ macro definitions are written with '' | ||
+ | * One exception is for macros which serve the role of functions - the line between a '' | ||
Regarding names: | Regarding names: | ||
Line 23: | Line 24: | ||
* Following from that, categorizing functions should be done prefix-first, | * Following from that, categorizing functions should be done prefix-first, | ||
* For example, '' | * For example, '' | ||
+ | * Predicate functions should use the verb '' | ||
+ | * For example, '' | ||
* Some macros can refer to a type; for readability and to distinguish it from function categories, these should be // | * Some macros can refer to a type; for readability and to distinguish it from function categories, these should be // | ||
- | * For example, an I/O port will be referred to as '' | + | * For example, an I/O port will be referred to as '' |
- | ===== Code formatting | + | ===== Code style ===== |
+ | |||
+ | * Braces are always on the same line, and are separated with a space. | ||
+ | * If it doesn' | ||
<code c> | <code c> | ||
Line 35: | Line 41: | ||
if (multi_line) { | if (multi_line) { | ||
braces_on_the_same_line(1); | braces_on_the_same_line(1); | ||
- | | + | |
- | // ... but treat sizeof, etc. like a function. | + | |
- | memcpy(&b, &a, sizeof(a)); | + | |
} | } | ||
} | } | ||
</ | </ | ||
+ | |||
+ | * Pointers are declared with the asterisk '' | ||
+ | |||
+ | <code c> | ||
+ | const void __far *return_pointer(void __far *my_pointer); | ||
+ | </ | ||
+ | |||
+ | ===== Documentation ===== | ||
+ | |||
+ | Use [[https:// | ||
+ | |||
+ | * Javadoc-style '' | ||
+ | * For one-line comments, such as on enumerated types, '' | ||
+ | * When writing internal header macros/ | ||
+ | ===== Best practices ===== | ||
+ | |||
+ | * Where the size of a variable matters, use '' | ||
+ | * For 8-bit platforms, rely on '' | ||
+ | * For functions which return a " | ||
+ | * Prefer '' | ||
+ | |||
+ | ===== Target-specific notes ===== | ||
+ | |||
+ | ==== wswan ==== | ||
+ | |||
+ | * We're currently limited to GCC 6.3.0 on this platform; as such, the highest available standard is '' | ||
+ | * The cost of a function call is rather high (5 bytes and 18 cycles of overhead for argument-less functions on '' | ||
+ | |||
+ | ====== References ====== | ||
+ | |||
+ | * [[https:// |
design/coding_style_guide.1746339906.txt.gz · Last modified: 2025/05/04 06:25 by asie