gpt4 book ai didi

c++ - 计算(字符)参数的宏

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:48:18 28 4
gpt4 key购买 nike

我有一个将字符串转换为字符列表的宏:

#define TO_STRING(x) #x
#define CHAR_LIST_7(x) TO_STRING(x)[0] \
, TO_STRING(x)[1] \
, TO_STRING(x)[2] \
, TO_STRING(x)[3] \
, TO_STRING(x)[4] \
, TO_STRING(x)[5] \
, TO_STRING(x)[6]

例如用法:“CHAR_LIST_7(chicken)”给出“'c'、'h'、'i'、'c'、'k'、'e'、'n'”,因此它可以用于模板之类的东西(例如:http://hpaste.org/47313/exand)

但是,我想将此概括为任意数量的字符(而不需要手动计算字符数量)?所以我可以简单地去:CHAR_LIST(任意文本)。有什么想法或解决方案吗?

最佳答案

你不能在预处理过程中拆分标记,你只能将它们组合起来(使用##)。

将标识符转换为字符串文字也无济于事,因为您不能在预处理期间将字符串文字拆分开,也不能对字符串文字执行操作(例如计算长度)。

在预处理期间,编译器知道标记是字符串文字以及它是什么类型的文字,但它还不知道其完整类型和长度,至少不知道宏可以访问的方式。

关于c++ - 计算(字符)参数的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977847/

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