#在c++中定义进程

  • 本文关键字:定义 进程 c++ c++
  • 更新时间 :
  • 英文 :


我正在尝试c++,有一点不能理解关于#define加法。下面的示例代码:

#include <iostream>
using namespace std;
#define A 0
#define B A+1
#define C 3-B

int main(){
cout << A << endl;
cout << B << endl;
cout << C;
return 0;
} 

结果为A ->[au:] B>1、C→4. C为什么等于4 ?

#define执行简单的文本替换。当你把B展开时,你在源代码中得到0+1,它是而不是必然等于一个值为1的整数。

那么,在您的示例代码中,如果我们将值替换为:

int main(){
cout << 0 << endl;
cout << 0+1 << endl;
cout << 3-0+1;
return 0;
} 

3 - 0 + 14

进行文本替换。B扩展为0+1C扩展为3-0+1而不是3-1

cout << C;

就变成:

cout << 3-0+1;

由于操作顺序的关系,这里显示的是4而不是2

查看这个问题的一个简单方法是:

cout << C * 50;

如果我们在错误的假设下操作,即C实际上是4,我们期望看到200。但是因为上面的等价于:

cout << 3-0+1 * 50;

那么我们正确地看到了53

最新更新