鱼C论坛

 找回密码
 立即注册
查看: 506|回复: 6

[已解决]这个警告为啥?

[复制链接]
发表于 2020-12-20 09:56:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一世轻尘 于 2020-12-20 09:59 编辑
#include<stdio.h>
#include<conio.h>
extern int m=100;
int main()
{
        void print();
        
        for(int i=0;i<15;i++)
            print();
        getch();    
}

void print()
{
        static int x=1000;
        printf("x is %d,m is %d\n",x,m);
        x++,m++;
}
gcc编译
最佳答案
2020-12-20 11:07:41
一世轻尘 发表于 2020-12-20 10:55
可是好像只有gcc编译器不能,而且我书上说是可以这样,而且我上网查了一下也是一样。听说vc编译就不会警 ...

        请参考这一篇文章,说得比较得体
        https://www.jianshu.com/p/111dcd1c0201
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-20 10:43:17 | 显示全部楼层
本帖最后由 jackz007 于 2020-12-20 10:45 编辑

        这一句
extern int m=100;
        改为
int m=100;
        "extern" 的意思是这个变量来自其它的源代码文件。在使用多个源代码文件编程时才有用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-20 10:55:20 | 显示全部楼层
jackz007 发表于 2020-12-20 10:43
这一句

        改为

可是好像只有gcc编译器不能,而且我书上说是可以这样,而且我上网查了一下也是一样。听说vc编译就不会警告
1.png
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-20 11:07:41 | 显示全部楼层    本楼为最佳答案   
一世轻尘 发表于 2020-12-20 10:55
可是好像只有gcc编译器不能,而且我书上说是可以这样,而且我上网查了一下也是一样。听说vc编译就不会警 ...

        请参考这一篇文章,说得比较得体
        https://www.jianshu.com/p/111dcd1c0201
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-20 11:11:38 | 显示全部楼层
jackz007 发表于 2020-12-20 11:07
请参考这一篇文章,说得比较得体
        https://www.jianshu.com/p/111dcd1c0201

可是我在函数外定义且初始化了,为啥会警告呢?
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-20 11:12:51 | 显示全部楼层
jackz007 发表于 2020-12-20 11:07
请参考这一篇文章,说得比较得体
        https://www.jianshu.com/p/111dcd1c0201

编译器的问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-20 11:23:11 | 显示全部楼层

        编译器没有任何问题,是你自己的问题,因为,没有人这么定义变量,你这是在声明,而不是在定义变量,你的这种写法,编译器不会为 m 分配内存空间,而按照你的预期,是必须要分配到的,这就是你代码的问题所在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表