-
以上是最主要的语法
:
语法一
:
#
define
标识符
被标识符代表的字符串
//
这种用法很简单
,
就是一种替换
.
语法二
:
#
define
标识符
[(
参数
1,.....,
参数
n)]
被标识符代表的字符串
//
其中
,
在
被标识
符代表的字符串
中出
现的形参将在使用时被实参替代
.
就像写函数一样
.
补充一点
:
在用
#
define
定义时
,
可以用斜杠
(
续行
.
与
< br>vb
中的下划线
(
_
作用
同
.
比如
:
#
define
add1( x,
y ) ( x + y)
也可以表示成
:
#
define
add1(x,y)
(x + y )
#
define<
/p>
中的
#
与
##
在
p>
#
define
中,标准只定义了
#
和
##
两种操作。<
/p>
#
用来把参数转换成字符串,
##
则用来连
接两个前后两个参数,把它们变成一个字符串。
#include
#
define
paster( n
) printf(
int
main()
{
int token9=10;
paster(9);
return 0;
}
输出为
token 9 = 10
#
define
的作用
在C或
C++
语言源程序中允许用一个
标识符来表示一个字符串,称为“宏”。被定义为
“宏”的标识符称为“宏名”。
在编译预处理时,
对程序中所有出现的“宏名”,
都用
宏定
义
中的字符串去代换,<
/p>
这称为“宏代换”或“宏展开”。
宏定义是由源程序中的宏定义命
令
完成的。宏代换是由预处理程序自动完成的。
在C或
C
++
语言中,“宏”分为有参数和无参数两种。
无参宏定义
无参宏的宏名后不带参数。
其定义的一般形式为:
#
define
标识符
字符串
其中的“#”表示这是一条
预处理命令
。
凡是以“#”开头的均为
预处理命令
“
define
”为宏定义命令。
“标识符”为所定义的宏名。
“字符串”可以是常数、
表达
式、格式串等。
< br>
例如: