这是一个示例代码:
#include <stdio.h>
int main() {
int n = 5;
float v[n];
float sum;
int i;
for(i = 0; i < n; i++) {
v[i] = i + 1;
printf("v[%d]=%f\n", i, v[i]);
}
for(i = 0; i < n; i++) {
sum += v[i]; //uninitialized using
}
printf("sum=%f\n", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
gcc编译它而没有任何未初始化变量的警告.
我正在使用gcc 4.6.3以下选项:
gcc -Wall main.c -o main
Run Code Online (Sandbox Code Playgroud)
我应该用什么选项来发出警告?
使用-O(优化)选项; 值跟踪仅在优化代码上执行.
$ gcc -Wall -O x.c
x.c: In function ‘main’:
x.c:15: warning: ‘sum’ is used uninitialized in this function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |