|
|
|
@ -0,0 +1,65 @@ |
|
|
|
This page list some coding conventions rules I try to follow on raylib C code: |
|
|
|
|
|
|
|
Code element | Convention | Example |
|
|
|
--- | :---: | --- |
|
|
|
Macros | ALL_CAPS | `#define MIN(a,b) (((a)<(b))?(a):(b))` |
|
|
|
Defines | ALL_CAPS | `#define PLATFORM_DESKTOP` |
|
|
|
Constants | lowerCase | `const int maxValue = 8` |
|
|
|
Struct | TitleCase | `struct Texture2D` |
|
|
|
Struct members |lowerCase | `texture.id` |
|
|
|
Enum | TitleCase | `TextureFormat` |
|
|
|
Enum members | ALL_CAPS | `PIXELFORMAT_UNCOMPRESSED_R8G8B8` |
|
|
|
Functions | TitleCase or prefixTitleCase | `InitWindow()`/`rlLoadTexture()` |
|
|
|
Variables | lowerCase | `screenWidth` |
|
|
|
Local variables | lowerCase | `playerPosition` |
|
|
|
Global variables | lowerCase | `fullscreen` |
|
|
|
Operators | value1*value2 | `int product = value*6;` |
|
|
|
Operators | value1/value2 | `int division = value/4;` |
|
|
|
Operators | value1 + value2 | `int sum = value + 10;` |
|
|
|
Operators | value1 - value2 | `int res = value - 5;` |
|
|
|
Pointers | MyType *pointer | `Texture2D *array;` |
|
|
|
float values | always x.xf | `float value = 10.0f` |
|
|
|
Ternary Operator | (condition)? result1 : result2 | `printf("Value is 0: %s", (value == 0)? "yes" : "no");` |
|
|
|
|
|
|
|
Some other conventions to follow: |
|
|
|
|
|
|
|
- raylib code does not use TABS, use 4 spaces instead. |
|
|
|
|
|
|
|
- Control flow statements are always followed by a space: |
|
|
|
```c |
|
|
|
if (condition) value = 0; |
|
|
|
|
|
|
|
while (!WindowShouldClose()) |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (int i = 0; i < NUM_VALUES; i++) printf("%i", i); |
|
|
|
|
|
|
|
switch (value) |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
{ |
|
|
|
|
|
|
|
} break; |
|
|
|
case 2: break; |
|
|
|
default: break; |
|
|
|
} |
|
|
|
``` |
|
|
|
- All condition checks are always enclosed in parentheses, with the exception of simple boolean values: |
|
|
|
```c |
|
|
|
if ( (value > 1) && (value < 50) && valueActive ) |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
- When dealing with curly braces, open-close them in aligned mode, it's more visual for students: |
|
|
|
```c |
|
|
|
void SomeFunction() |
|
|
|
{ |
|
|
|
// TODO: Do something here! |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
**When proposing new functions, please try to use a clear naming for function-name and function-parameters. In case of doubt, open an issue for discussion.** |