您的位置:首页 > 其它

预处理中的“#”运算符和“##”运算符

2016-04-06 11:24 239 查看
“#”和“##”这两个运算符都是预处理,在这里,对他的使用是一个关键,接下来我们通过一段程序来认识一下:

//#
//##
#include<stdio.h>
#include<stdlib.h>
#define PRINT( n ) printf( "token" #n " = %d", game##n )
int main()
{

int game9 = 99;
PRINT(9);//在这里的##的作用是连接的作用,最后导致输出的变量是game9,而#的作用是就是把参数当作字符串代替;
system("pause");
return 0;
}


程序运行结果:



在这里我们可以分析,在宏中的n字符最后被所给的参数代替,所以“#”运算符,它可以把语言符号转化为字符串。

对于“##”运算符呢,在程序中,它把game和n组合成了game9,game9为99,所以最后也就输出了game99。所以可以知道,“##“起的作用就是连接任意的字符。

特别注意:

在单一的宏定义中,最多只能出现一次”#“或”##“操作符。当然,由于这些限定,除非是在非常必须的情况下,否则应该尽量不使用”#“和”##“。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: