c++中define用法
define在c++语言中用法比较多,这里对其进行整理。
1.无参宏定义
无参宏的宏名后不带参数。
其定义的一般形式为:
#define 标识符 字符串
其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
例如:
#define MAXNUM 99999
这样MAXNUM就被简单的定义为99999。
2.有参宏定义
C++语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。
对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。
带参宏定义的一般形式为:
#define 宏名(形参表) 字符串
在字符串中含有各个形参。在使用时调用带参宏调用的一般形式为:宏名(实参表);
例如:
#define add(x, y) (x + y)
int main()
{
//输出“1 plus 1 is 2.5.”
cout << "1 plus 1 is " << add(1, 1.5) << ".\n";
system("pause");
return(0);
}
这个“函数”定义了加法,但是该“函数”没有类型检查,有点类似模板,但没有模板安全,可以看做一个简单的模板。
注意:该“函数”定义为(a + b),在这里加括号的原因是,宏定义只是在预处理阶段做了简单的替换,如果单纯的替换为a + b时,当你使用5 * add(2, 3)时,被替换为5 * 2 + 3,值为13,而非5 * (2 + 3),值为25。
更多详细使用方法参加:/yf99i