"define"在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。“define”为宏定义命令。
被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。
在C或C++语言中,“宏”分为有参数和无参数两种。
我的举例是"define"用法中容易出错和忽略的一种。
#include<iostream>
#define M 3;
const N = 3;
int main()
{
int a=8,m,n;
m =a-M-1;
m =a-N-1;
cout<<"m= "<<m<<endl;
cout<<"n= "<<n<<endl;
return 0;
}
输出为:m= 5
n= 4
为什么不是m=n=4呢,因为"#define M 3;"注意3后边的分号,所以“3;”是宏名M的代替。
所以“n =a-M-1;"=="n =a-3;-1;"计算时不计算-1,n=5;
切记!!!