黑马程序员技术交流社区
标题:
define的注意事项
[打印本页]
作者:
MoonLove
时间:
2015-8-11 09:44
标题:
define的注意事项
#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。
作者:
wangchao1992
时间:
2015-8-11 10:40
描述的不错,
作者:
norwood
时间:
2015-8-11 16:46
干得好。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2