编程中的编译器警告、全局变量、并发问题及代码审查
1. 编译器警告的作用
编译器在处理源代码时会产生错误和警告两种消息。错误意味着程序存在严重缺陷,编译器无法生成代码;而警告则表示编译器发现代码有可疑之处,但仍能生成可执行程序。编译器发出警告可能有以下几种情况:
- 代码虽能编译,但可能无法按预期运行。
- 语言标准未完全定义代码在当前情况下的行为,编译器只能尽力处理。
- 代码行为明确,但可能存在错误。
- 使用了已弃用的语言特性。
以下是一些常见的编译器警告示例:
- 未初始化变量
int X, MyVar;
X = MyVar; // MyVar doesn't have an initial value
此代码中 MyVar 未被初始化,因此赋给 X 的值是未定义的。这种警告通常意味着代码存在错误。
- 可疑的语言使用
if (x = y) { ... do this... }
在 C 语言中,这是一个经典错误。 x = y 是赋值操作,而大多数情况下,程序员想要的是比较操作 x == y 。为避免此类错误,C 编码规范通常禁止在条件判断中使用赋值操作。
- 危险的类型转换
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



