IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Preprocessor

共 1 篇相关文章

IT 累计浏览 1,497

宏中#和##的用法

这篇讲的是C++预处理器中两个实用但常被忽视的操作符:“#”和“##”。 作者从宏的基本用法切入,清晰地拆解了它们各自的功能。其中,“#”操作符负责将宏参数“字符串化”,也就是把传入的参数名称变成一个字符串常量。而“##”则是一个“标记粘贴”操作符,它能把左右两边的标识符(token)直接拼接成一个全新的标识符。 文章通过简洁的代码示例展示了它们的直接效果。例如,使用`#define STR(s) #s`后,`STR(hello)`会被展开为字符串`"hello"`;而`#define CONS(a,b) int(a##e##b)`则能把参数`a`、`e`和`b`粘合,如`CONS(3,2)`会变成`int(3e2)`,即科学计数法表示。 这篇文章的价值在于,它快速厘清了这两个在调试日志或编写高度泛型宏时非常有用的工具,让读者能准确理解并应用它们,避免因混淆而产生的代码错误。