转载请注明出处
由于阅历有限,篇幅不周之处还望指出,谢谢
一、#define 宏体为空时
#define name value
宏体为空时,宏名被定义为字符常量0
验证代码:
#define YOUNAME
void main()
{
printf("%d",YOUNAME);
getch();
}
二、字符串化运算符(#运算符)
在宏定义中,#运算符把跟在其后的参数转换成一个字符串。因而有字符串化运算符。
#define CATSTR(n) "abcd"#n
void main()
{
printf("%s\n",CATSTR(100));
}
输出abcd100
三、并接运算符(##)
用于将参数连到一起,跟#运算符类似
#define COMB(a,b,c) a##b##c
void main(){
printf("%s\n",COMB(1,2,3));
printf("%d\n",COMB(1,2,3));
}
四、条件编译
#ifdef 常量表达式
常量表达式可以为编译标志,也可以作为常量表达式的值来作为条件表达式的值
#define CONST 1 表达式值#define CCTAG 编译标志
#ifdef [...] 条件成立