I have seen that writing anything after the completion of any
pre-processor compiler directive does not affect either compilation or
running of the program.
#include<conio.h> 123as!#@
#define M 100 *&^asdf
is perfectly valid.

How can such athing happen ?

I'm not shore that I understood your problem.

#if 0
/* you can put here anything and the compiler wouldn't consider it */
/* while this part will be considered */
#endif /* if 0 */

>>#define M 100 *&^asdf
the compiler does not evaluate macros until used. If you coded something like below your compiler would complain bitterly at you int x = M;

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.