求助帖,下面的代码是什么原因
#define A(X) X*X*Xint main()
{
int n =3;
//A(printf("%d ", n++));这样输出是3 4 5
int a =A(printf("%d ", n++)); //这样输出是 543
}
有人给解释下为什么加了一个变量后,为什么输出的顺序变了? 我的输出都是3 4 5,和编译器有关?
其实也没必要深究这个 巴巴鲁 发表于 2020-8-20 17:22
我的输出都是3 4 5,和编译器有关?
其实也没必要深究这个
那可能吧,我试了下发现结果不一样,好奇
我用的vs wxiaop 发表于 2020-8-20 17:38
那可能吧,我试了下发现结果不一样,好奇
我用的vs
我的是Dev 我用VC++6.0编译,有变量的编译正常,运行正常,输出结果:3 4 5 ;没有变量 a 的,编译时出现一条告警:
warning C4552: '*' : operator has no effect; expected operator with side-effec ,运行正常,输出结果:3 4 5
用DEV_C++ 2013编译,两条编译都不能编译
风过无痕1989 发表于 2020-8-21 01:15
我用VC++6.0编译,有变量的编译正常,运行正常,输出结果:3 4 5 ;没有变量 a 的,编译时出现一条告警:
...
好的,知道什么情况了,谢谢
页:
[1]