When you define a symbol with #define, you are instructing the preprocessor to replace every occurence of the X symbol in the text with the given string before compilation. So the symbol X never gets loaded into memory.
The program generated by that code would be identical to the program you would get if you had used:
char X = 003;
Is this case, there is no loss of data, because 3 fits quite nicely between the limits of char (-127 to +128).
|