UNIX的基础编程环境讲解
C语言
预处理
2.1预处理操作符
.预处理操作符只用在宏定义的单词系列中,其中#是一元操作符,##是二元操作符, 例如:
#a ; a##b
# 以预处理操作符#号开头的宏参数,有它自己对应的转换为字符串字面量的非扩展实
参数.(字符变量或字符串变量成员中包含的每个双引号和反斜线都使用反斜线转义).
这个规则仅在类似函数的宏内部中使用.
## 如果一个替换单词系列包含##操作符,则删除##以及它前后的空格符,把相邻的单词连
接起来,建立一个新单词.这种情况仅在扩展宏时才发生,可用在任何宏定义.例如:
#define M1 3
#define M2 M1##2
M2 = M12
注:1.#只能用在宏函数的定义中,##可用在任何情况
2.#的操作数如是宏,则预编译时,该宏不展开
3.##首先把它两边的空格去掉,把##两边的字符连接起来,##的操作数如是宏,则预编译
时,该两个宏不展开
2.2预处理数
预处理数由一个数字构成,前面可以加一个可选的点号,后面可以跟着字母,下划线,数
字,点号以及一个e+,e-,E+或E-,例:
#define R 2e##
原创力文档

文档评论(0)