搜索
查看: 1482|回复: 10
打印 上一主题 下一主题

define问题

[复制链接]
楼主
发表于 2013-8-22 21:29:52 | 显示全部楼层
纨绔☆子弟 发表于 2013-8-23 11:31
编译了5次,还是22

用在线编译器
或者重启计算机
沙发
发表于 2013-8-22 21:41:52 | 显示全部楼层
宏只做简单的文本替换
#define AS a
int a =AS;

预处理之后就是
int a = a;

这句会被处理成
int a;
a = a;

也就是
int a;

未赋值的局部变量的值是未指明的,可能是内存残留的任何值,在你实验的时候碰巧是2
板凳
发表于 2013-8-23 11:00:40 | 显示全部楼层
纨绔☆子弟 发表于 2013-8-23 09:27
不好意思,本来分你可以拿走的,但我一运行又有了问题。。。。
@rosynirvana当定义一个无值 ...

多重新编译几次,一般就能看到不同的值了
如果你不重新编译,变量指向的还是同一个地址,这个地址残留的值有可能还没变

或者用网上的编译器编译,例如codepad.org
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表