【发布时间】:2015-07-21 12:08:20
【问题描述】:
我通读了一些示例代码,并掌握了我以前从未见过的 ## 语法。代码示例如下:
#define DEF_MAKE_BT_1_COMP(BT)\
inline i_##BT make_i_##BT(i_##BT::vtype x) { return make_##BT(x); }
#define DEF_MAKE_BT2(T) \
DEF_MAKE_BT_1_COMP(T##1); \
DEF_MAKE_BT_2_COMP(T##2);
DEF_MAKE_BT2(double);
当我在最后一行出现错误时,“make_double1”是未定义的。有人见过这种语法吗?
【问题讨论】:
-
令牌连接。在SO上多次询问和回答。与以往一样,困难在于找到正确的问题来复制它。
-
@LưuVĩnhPhúc - 如果我记得,Google 不允许在搜索中使用特殊字符,例如井号。或者它不尊重他们。例如,what does ## mean in C。前 5 个 页有 0 个相关结果。您必须使用不同的搜索引擎才能获得最佳结果。在这里,“最佳”与原始搜索词相关,而不是答案。
-
@jww 你可以在谷歌上搜索一些特殊符号,虽然这有点难,所以我需要使用“双哈希符号”,它可以工作。您也可以使用search engine for special characters
标签: c++ c-preprocessor