编译预处理进行宏替换时,不作任何计算,也不做语法检查,仅对宏名做简单的替换。
1.无参数宏
#include <bits/stdc++.h>
using namespace std;
#define A 3+3
#define B A*A
int main()
{
cout<<B<<"\n";
return 0;
}
/*
输出15,而不是36,因为编译预处理进行宏替换后为
cout<<3+3*3+3<<'\n';
*/
2.带参数的宏
#define 宏名(参数表不能指明形参类型) 带参表达式
例#define v(a,b,c) a*b*c