1. #:在宏展开的时候会将#后面的参数替换成字符串,如:
#define p(exp) printf(#exp);
调用p(test)的时候会将#exp换成"test"
2. ##:将前后两个的单词拼接在一起。例如《The C Programming Language》中的例子:
#define cat(x,y) x##y
调用cat(var, 123)展开后成为var123.
3. #@:将值序列变为一个字符
#define ch(c) #@c
调用ch(a)展开后成为'a'.
#define p(exp) printf(#exp);
调用p(test)的时候会将#exp换成"test"
2. ##:将前后两个的单词拼接在一起。例如《The C Programming Language》中的例子:
#define cat(x,y) x##y
调用cat(var, 123)展开后成为var123.
3. #@:将值序列变为一个字符
#define ch(c) #@c
调用ch(a)展开后成为'a'.
本文详细介绍了C语言中预处理指令的基本用法,包括如何使用#将参数转换为字符串,如何利用##连接两个标识符,以及#@如何将值转换为单个字符。通过具体的实例展示了这些指令的实际应用。
15万+

被折叠的 条评论
为什么被折叠?



