C/C 中基于宏的字符串连接
无法使用 ## 直接连接 C/C 中的宏定义字符串预处理器运算符,主要用于令牌串联。但是,存在一种解决方法可以实现此目的。
请考虑以下示例:
#define STR1 "s" #define STR2 "1" #define STR3 STR1 STR2
此代码定义了三个宏:STR1 带有字符串“s”,STR2 带有“1”, STR3 作为 STR1 和 STR2 的串联。 STR3 的扩展结果为:
#define STR3 "s" "1"
但是,在 C 语言中,两个由空格分隔的字符串并置(如“s”“1”)相当于单个字符串“s1” .
因此,下面的代码直接连接STR1和STR2,不需要##运算符:
#define STR3 STR1 STR2
这扩展为:
#define STR3 "s1"
以上是如何在不使用运算符的情况下在 C/C 中连接宏定义的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!