注意能够字符串化操作的必须是宏参数,不是随随便便的某个子串(token)都行的。 2、宏定义中的连接符##: 连接符##用来将两个token连接为一个token,但它不可以位于第一个token之前or最后一个token之后。注意这里连接的对象只要是token就行,而不一定是宏参数,但是##又必须位于宏定义中才有效,因其为编译期概念(...
注意能够字符串化操作的必须是宏参数,不是随随便便的某个子串(token)都行的。 <2>.宏定义中的连接符##: 连接符##用来将两个token连接为一个token,但它不可以位于第一个token之前or最后一个token之后。注意这里连接的对象只要是token就行,而不一定是宏参数,但是##又必须位于宏定义中才有效,因其为编译期概念...
1、宏定义中字符串化操作符#:#的功能是将其后⾯的宏参数进⾏字符串化操作,意思就是对它所应⽤的宏变量通过替换后在其左右各加上⼀个双引号。例如:#define WARN_IF(EXPR)\ do {\ if (EXPR)\ fprintf(stderr, "Warning: " #EXPR "\n");\ } while(0)上⾯代码中的反斜线\主要⽤来转译...