zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C/C++语言宏定义##连接符和符#的使用

C++语言 定义 使用 ##
2023-09-11 14:17:47 时间

C/C++语言宏定义##连接符和符#的使用 

    【尊重 原创,转载请注明出处 】http://blog.csdn.net/guyuealian/article/details/53113187
(一)C/C++语言宏定义##连接符和符#的使用
   (1) ## 连接符:在带参数的宏定义中,  用来将两个Token连接为一个Token ,从而形成一个新的子串。 注意这里连接的对象是Token就行,而不一定是宏的变量。
    例子:
#define XNAME(n) x ## n  
    当出现int XNAME(1) = 14;时,会被替换为:
int x1=14;
     (2)#符:是将其后面的宏参数进行字符串化操作(Stringfication),即把宏参数变为一个字符串,简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。#符,也就是把传递过来的参数当成字符串进行替代。
    例子:
#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"); } while(0)
当出现WARN_IF (divider == 0);时,相当于如下替换:
do {
	if (divider == 0)
		fprintf(stderr, "Warning" "divider == 0" "/n");
} while(0);
    可见#EXP将会被替换为【“divider == 0"】