CodeQL 文档

自身初始化器中使用的变量

ID: cpp/use-in-own-initializer
Kind: problem
Security severity: 
Severity: warning
Precision: high
Tags:
   - maintainability
   - correctness
Query suites:
   - cpp-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

变量在其自身初始化器中处于范围内,但在首次赋值之前从中加载是未定义的行为。

建议

不要在变量自身的初始化器中使用该变量,除非它是地址计算或 sizeof 表达式的一部分。

示例

int f() {
	int x = x; // BAD: undefined behavior occurs here
	x = 0;
	return x;
}

int g() {
	int x = 0; // GOOD
	return x;
}

参考

  • ©GitHub 公司
  • 条款
  • 隐私