水木社区手机版
首页
|版面-Linux开发与高级讨论(LinuxDev)|
新版wap站已上线
返回
1/1
|
转到
主题:请大家帮个忙,测试一下for里面没初始化的变量 (转载)
楼主
|
il15
|
2021-06-21 11:13:30
|
展开
【 以下文字转载自 CProgramming 讨论区 】
发信人: il15 (il15), 信区: CProgramming
标 题: 请大家帮个忙,测试一下for里面没初始化的变量
发信站: 水木社区 (Mon Jun 21 11:12:45 2021), 站内
想看看你们手中的编译器会不会报 没初始化的变量 之类的错误。
我用了 gcc 9.3.0 没报。
程序如下:
#include <stdlib.h>
#include <stdio.h>
int for_uninit( )
{
int i, x, y;
for (i = 0; i < 10; i ++) {
x ++;
y = y + 1;
}
return x + y;
}
int main( )
{
fprintf( stderr, "%d\n", for_uninit( ) );
return 0;
}
--
FROM 14.16.145.*
2楼
|
il15
|
2021-06-25 08:34:57
|
展开
多谢啊。gcc的 -Wall 对于这个case其实没什么用。
我用
https://godbolt.org
(感谢z16166 提供了这个网站)测试了一下,
发现只有msvc能够报错,
里面最弱的是gcc,即使是最新的11.0 碰到了if-else 这种有分支的就报不出来了。
clang好一点。
【 在 prc79 的大作中提到: 】
: -Wall
--
FROM 183.47.50.*
6楼
|
il15
|
2021-06-26 08:41:43
|
展开
多谢啊! 我居然没想到要开 -O, 也是弱爆了.
【 在 ArchLinux 的大作中提到: 】
: 开了优化就会有warning了。
:
https://gcc.godbolt.org/z/Tj4v8zGW6
:
--
FROM 121.13.108.*
7楼
|
il15
|
2021-06-26 08:44:35
|
展开
这个是哪个编译器的选项呢?
【 在 thom 的大作中提到: 】
: -Weverything
--
FROM 121.13.108.*
8楼
|
il15
|
2021-06-26 08:48:51
|
展开
开了-O1 之后, gcc都能报了, 反而 clang 还是发现不了y 没初始化...
【 在 ArchLinux 的大作中提到: 】
: 开了优化就会有warning了。
:
https://gcc.godbolt.org/z/Tj4v8zGW6
:
--
FROM 121.13.108.*
10楼
|
il15
|
2021-06-28 17:39:42
|
展开
大致测试了一下,用 -Wall -O2 (有些编译器不需要-O2),
gcc 和 msvc都可能报x和y 没有初始化的警告。
clang 只能报x,这个比较奇葩。
icc(我听过这个编译器,所以也测试了一下)就什么都报不出来,不知道是不是有哪些选项没给好。
【 在 ArchLinux 的大作中提到: 】
: 开了优化就会有warning了。
:
https://gcc.godbolt.org/z/Tj4v8zGW6
:
--
FROM 14.16.130.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版