为什么GCC会给我-Wjump-misses-init警告?

 风飞满天2602938511 发布于 2023-02-05 10:42

我有一段代码,当我以这种形式(带有-Wjump-misses-init标志)写它时编译得很好:

int some_function(void) {

        ...

        if (is_error)
                goto error;

        int a;

        a = 1;

        return a;

error:
        return 666;
}

但是当我以这种形式编写相同的函数时,我在编译时得到以下警告(:

int some_function(void) {

        ...

        if (is_error)
                goto error;

        int a = 1;

        return a;

error:
        return 666;
}

test.c: In function 'some_function':
test.c:15:17: warning: jump skips variable initialization [-Wjump-misses-init]
test.c:21:1: note: label 'error' defined here
test.c:17:13: note: 'a' declared here

当我a在同一行宣布和初始化时,为什么GCC会给我这个警告?对我来说似乎有点奇怪?这些例子是荒谬的,但我担心我不能自由地泄露真正的代码片段.我在Debian Wheezy 7.3上运行GCC 4.7.2.

编辑:无效拼写错误

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有