这个定义宏是做什么的?我假设这个宏会把给定的字符串打印到标准输出,但是它什么也没打印出来,我错了吗?
#define SCOPE_LOGGER(...) ... void someClass::someFunction() { SCOPE_LOGGER("someClass::someFunction()"); ... }
fumotvh31#
根据KamilCuk's answer,该宏将展开为空。然而,最有可能的是,它确实通过一些其他预处理条件路径扩展到了某个东西,即imho该行在代码中的显示如下:
#ifdef DEBUG #define SCOPE_LOGGER(...) something real that does the logging #else #define SCOPE_LOGGER(...) #endif
只有这样这句话才说得通。
vshtjzan2#
这个定义宏做什么?定义一个宏函数,该函数可以接受任意数量的参数,并可以不展开任何内容。我说错了吗?因为宏扩展为空,所以SCOPE_LOGGER("someClass::someFunction()")从代码中删除。拖尾;保留。
SCOPE_LOGGER("someClass::someFunction()")
;
2条答案
按热度按时间fumotvh31#
根据KamilCuk's answer,该宏将展开为空。
然而,最有可能的是,它确实通过一些其他预处理条件路径扩展到了某个东西,即imho该行在代码中的显示如下:
只有这样这句话才说得通。
vshtjzan2#
这个定义宏做什么?
定义一个宏函数,该函数可以接受任意数量的参数,并可以不展开任何内容。
我说错了吗?
因为宏扩展为空,所以
SCOPE_LOGGER("someClass::someFunction()")
从代码中删除。拖尾;
保留。