Novice_lml 2022-03-06 17:15 采纳率: 100%
浏览 171
已结题

使用extern 引用另一个文件的全局变量报错问题

我刚自学c几天(也许是很低级的错误,希望各位不要嘲讽我^^)
我在写代码演示static修饰全局变量的作用时遇到问题。
先在一个文件里赋值了一个全局变量如下:
#include<stdio.h>
int a = 10;
然后在另一个文件里引用这个全局变量 如下:
#include <string.h>
#include<stdio.h>
int main()
{
//extern-申明外部符号的
extern int a ;
printf("%d\n", a);
return 0;
}
在执行不调试代码时 报错如下:

错误 LNK2001 无法解析的外部符号 "int a" (?a@@3HA)

错误 LNK1120 1 个无法解析的外部命令

在赋值全局变量的时候,我还没有用static修饰这个全局变量
//static 修饰全局变量
//改变了变量的作用域--让静态的全局变量只能在自己所在的源文件内部使用

所以应该能被引用才对,但是却报错了;
我想请问各位报错原因和如何正确引用外部全局变量;
感激不尽!

  • 写回答

1条回答 默认 最新

  • 四海一叶秋 2022-03-06 17:37
    关注

    你确定两个文件都在同一个项目里,且另一个文件里的int a不是被声明成static int a?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 修改了问题 3月6日
  • 创建了问题 3月6日

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!