文章来自 http://www.uml.org.cn/c++/200902104.asp
在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤....有的C编译器使用分别的程序来完成这些步骤. 可单独调用这些程序来完成....应该避免重新定义函数宏, 不管是在预处理命令中还是C语句中, 最好对某个对象只有单一的定义. 在gcc中, 若宏出现了重定义, gcc会给出警告....它与#if, #elif, #else结合使用来判断宏是否被定义, 乍一看好像它显得多余, 因为已经有了#ifdef和#ifndef....我用gcc, 如果不指定-std=c99, 其他情况都给出__STDC_VERSION__未定义的错误信息, 咋回事呢?