cppcoreguidelines-init-variables¶
检查是否有未初始化值的局部变量。如果存在读取变量但未赋值的代码路径,这些变量可能会导致意外行为。
此规则是 类型安全(Type.5) 配置文件和 C++ 核心准则中的 ES.20 的一部分。
只检查整数、布尔值、浮点数、双精度数和指针。修复选项将所有检测到的值初始化为零。浮点数和双精度数类型例外,它们初始化为 NaN。
例如,一个类似这样的函数
void function() {
int x;
char *txt;
double d;
// Rest of the function.
}
将被重写为
#include <math.h>
void function() {
int x = 0;
char *txt = nullptr;
double d = NAN;
// Rest of the function.
}
它会对未初始化的枚举情况发出警告,但没有提供修复建议
enum A {A1, A2, A3};
enum A_c : char { A_c1, A_c2, A_c3 };
enum class B { B1, B2, B3 };
enum class B_i : int { B_i1, B_i2, B_i3 };
void function() {
A a; // Warning: variable 'a' is not initialized
A_c a_c; // Warning: variable 'a_c' is not initialized
B b; // Warning: variable 'b' is not initialized
B_i b_i; // Warning: variable 'b_i' is not initialized
}
选项¶
- IncludeStyle¶
一个字符串,指定使用的包含样式,llvm 或 google。默认值为 llvm。
- MathHeader¶
一个字符串,指定包含用于获取 NAN 定义的头文件。默认值为 <math.h>。