I have been working on GCC pragma types and it's operations. But I realized that pragmas can be used to command directly compiler. The confusion I am having is that # operations are part of preprocessing, for example
#if DEBUG
/* statement one */
#elif RELEASE
/* statement two */
#endif
if debug mode is activated, the compiler does not even compile and detect errors in statement two, but how does #pragma can directly command to the compiler?
Also If It is controlling the compiler, is there a way to do it without #pragmas? Because after preprocessing there is only C code left.