- 此问题在此处已有答案**:
What does ## (double hash) do in a preprocessor directive?(2个答案)
4天前关闭。
在阅读. h文件中关于tlm的代码时,出现了一些令我困惑的事情:
//
// Generators for Setters and Getters.
//
#define CHIATTR_PROP_GETSET_GEN(name, type) \
type Get ## name (void) const { return name ; } \
void Set ## name (type new_v) { name = new_v; }
#define CHIATTR_PROP_GETSET_GEN_FUNC_NAME(func_name, prop_name, type) \
type Get ## func_name (void) const { return prop_name ; } \
void Set ## func_name (type new_v) { prop_name = new_v; }
它的用法是这样的:
CHIATTR_PROP_GETSET_GEN(ReturnNID_StashNID, uint16_t)
CHIATTR_PROP_GETSET_GEN_FUNC_NAME(ReturnNID,
ReturnNID_StashNID,
uint16_t)
这个句子里发生了什么?
type Get ## name (void) const { return name ; } \
急切地等待着答案!
1条答案
按热度按时间eeq64g8w1#
操作符取两个单独的标记,并将它们粘贴在一起以形成单个标记。
从您的示例中:
将在预处理器步骤中替换为以下代码: