bugprone-multiple-statement-macro¶
检测在无括号条件语句中使用的多语句宏。宏的第一个语句将位于条件语句中,而其他语句将无条件执行。
示例
#define INCREMENT_TWO(x, y) (x)++; (y)++
if (do_increment)
INCREMENT_TWO(a, b); // (b)++ will be executed unconditionally.
检测在无括号条件语句中使用的多语句宏。宏的第一个语句将位于条件语句中,而其他语句将无条件执行。
示例
#define INCREMENT_TWO(x, y) (x)++; (y)++
if (do_increment)
INCREMENT_TWO(a, b); // (b)++ will be executed unconditionally.