gpt4 book ai didi

c - c语言中 "#@"有什么用?

转载 作者:太空狗 更新时间:2023-10-29 15:25:27 24 4
gpt4 key购买 nike

# 符号用于预处理器指令的开头(#ifdef#define 等) . # 也用作字符串化运算符。

## 是 token 粘贴操作符。

然后在一个在线测验中我看到了这个:

#define MAKECHAR(operand) #@operand

#@ 是什么运算符,它的用途是什么?

最佳答案

它类似于stringify 标记# 但是对于字符,但它不是标准化的。例如clang/llvm不支持。

显示类比:

#define MESSAGE(x) printf("%s: %d\n", #x, x)

int main(){
int i = 5;
MESSAGE(i); // expands to printf("%s: %d\n", "i", x)
return 0;
}

输出是:

i: 5

如果编译器支持#@,你可以这样写:

#define MESSAGE(x) printf("%c: %d\n", #@x, x)

int main(){
int i = 5;
MESSAGE(i); // expands to printf("%c: %d\n", 'i', x)
return 0;
}

关于c - c语言中 "#@"有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53281350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com