正像上面的那个朋友所说的,#define是宏定义,但是说是“最先编译”的有点不准确,因为编译的话是将代码转换成机械码的过程。而宏是在编译之前由编译器先替换成要替换的字符或字符串的,我感觉用“翻译”会更准确。
明白了上面这段,下面你问的也就好解决了!
int add(int a, int b){
#define PI 3.14
……
}
int reduce(int a, int b){
int m = PI;
……
}
#undef PI
……
在#define和#undef之间的PI在编译前都会被替换成3.14,所以是有效的。到这里的话其它的你也就应该都明白了!但是就像上面的朋友说的一样,不提倡这么用!
温馨提示:答案为网友推荐,仅供参考