If a value is defined as
#define M_40 40
Is the size the same as a short (2 bytes) or is it as a char (1 byte) or
short
char
Preprocessor macros get literally swapped in during the preprocess stage of the compilation.
For example the code
#define N 5 int value = N;
will get swapped for
int value = 5;
when the compiler sees it. It does not have a size of its own as such