通常,我偶尔会有一系列嵌套宏,其定义中包含一些预处理器条件元素.这些可能很难调试,因为很难直接看到正在执行的代码.
前一段时间我依稀记得找到一个编译器(gcc)标志来扩展它们,但是我在实践中遇到这个问题很困难.
gcc -E会将预处理的源输出到stdout.
对于MSVC用户,您可以右键单击文件/项目,查看设置并更改文件属性以输出预处理源(通常位于obj目录中).
这可能不适用于您的情况,但宏确实妨碍了调试,并且经常被过度使用和避免.
你可以用内联函数替换它们或以其他方式一起摆脱它们吗?