| 
 
| #define是C语言中提供的宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。#define可以给程序员带来很多方便,但如果使用不当会带来很多麻烦。 当替换文本所表示的字符串为一个表达式时,容易引起误解和误用。
 如
 #define   N   2+2
 void main()
 {
 int   a=N*N;
 printf(“%d”,a);
 }
 
 很多同学会把这题结果误认为是16,然而实际上结果是8。这是因为宏展开是在预处理阶段完成的,这个阶段把替换文本只是看作一个字符串,并不会有任何的计算发生,在展开时是在宏N出现的地方只是简单地使用串2+2来代替N,并不会增添任何的符号,所以对该程序展开后的结果是a=2+2*2+2,计算后=8。
 
 
 
 | 
 |