...
- Capital snake case on all constants, #defines, and enumerations
- Typedef enums
- Defines that are only used in a single c file, and aren't meant to be modified by the developer should be placed in the .c file, not the .h file
Example
#define HELLO_WORLD 4
...
For code portability and easier unit testing, please use the types defined in <stdint.h> and <stdbool.h>. The table below summarizes the different possible types and their conversion to the standard types. As you can see, it also saves on a lot of typing.
C Standard Type | Length in Bytes (XC16) | Portable Type |
---|---|---|
char | 1 | int8_t |
unsigned char | 1 | uint8_t |
int | 2 | int16_t |
unsigned int | 2 | uint16_t |
long int | 4 | int32_t |
long unsigned int | 4 | uint32_t |
long long int | 8 | int64_t |
unsigned long long int | 8 | uint64_t |
float | 4 | -- |
double | 4 | -- |
long double | 8 | -- |
1 | bool |
Note that with the inclusion of <stdbool.h>, you get the true and false types available to use.