在向gcc(4.4.6)添加-O2 -Wall标志后清除代码.
我在一些遗留代码中有很多警告.这是一个非常简化的版本来演示问题:
1 #include dio>
2
3 bool init(bool& a)
4 {
5 return true;
6 }
7
8 int main()
9 {
10 bool a;
11
12 if (!init(a))
13 {
14 return 1;
15 }
16
17 if (a)
18 {
19 printf("ok\n");
20 }
21 }
当它编译为“gcc main.cpp -O2 -Wall”时,我收到:
main.cpp:17: warning: `a' is used uninitialized in this function
在实际代码中,init()仅在初始化“a”时才返回true,因此未初始化的“a”实际上没有使用它.
可以做Whan修复警告.
最佳答案