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

使用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日

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因