在 C/C++ 代码项目中,我想找到所有不使用大括号的if/else语句。是否有任何编译器检查或实用程序可以找到它们?
主要问题是我想重新定义一些调试宏以避免在某些情况下进行跟踪评估(有人知道其他解决方案吗?)。而且我需要找到它们以避免“悬空-else问题”</a>,正如“if”块中所指出的那样,没有花括号会使后续的“else if”嵌套
代码片段:
修改前:
DEBUG GET_DEBUG_DST(DEBUG_LEVEL_DEBUG).nospace() << DEBUG_PREFIX << __PRETTY_FUNCTION__
现在我们将在里面使用if
不带大括号的:
DEBUG if (getDebugmode(DEBUG_LEVEL_DEBUG)) GET_DEBUG_DST(DEBUG_LEVEL_DEBUG).nospace() << DEBUG_PREFIX << __PRETTY_FUNCTION__
有问题的代码示例:
if (my condition)
DEBUG << "hi there";
else
{some more code;}