C ++预处理程序中的前缀增量
|
有人可以解释为什么b = 150吗?
#define CUBE(X) ((X) * (X) * (X))
using namespace std;
int main( void )
{
int a = 3,b = 0;
cout << \"before \"<< endl;
cout << \"a = \" << a;
cout << endl;
cout << \"b = \" << b;
cout << endl;
cout << \"after\"<< endl;
b = CUBE( ++a );
cout << \"a = \" << a;
cout << endl;
cout << \"b = \" << b;
getchar();
return 0;
}
没有找到相关结果
已邀请:
3 个回复
讹巳漓把备
被重写为:
在代码编译之前。 然后,代码将调用“未定义行为”,因为在序列点之间您将“ 3”递增了几次。 如果您改用函数会更好。
痰降锭骂奸
是未定义的行为。
渴翅吮斡撤
。这就是“ 6”功能是极为优越的选择的原因。