双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

一个C的全局变量的小问题,请教

cy010510630 cy010510630 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//---------文件分隔符---------

//globe.cpp
int globe = 100;

//---------文件分隔符---------

//globe.h
extern int globe;

//---------文件分隔符---------

//func.cpp
#include"globe.h"
int func()
{
return 0;
}
globe = 0;//如果将此行放到函数func内部,就不会报错

//---------文件分隔符---------

//main.cpp
#include"globe.h"
int func();
int main()
{
func();
return 0;
}

//---------文件分隔符---------



编译无法通过,错误信息如下:
Compiling...
main.cpp
test1.cpp
D:\my program\VCproject\consoleTest1\test1.cpp(12) : error C2501: 'globe' : missing storage-class or type specifiers

但是如果将程序中注释那部分,即修改全局变量的语句放到函数func内部,则编译通过。
请问为什么?
我觉得应该两种方法都能通过编译的?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
cy010510630
C语言 70,039 成员 243,237 内容