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

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

悬赏问题

  • ¥50 gki vendor hook
  • ¥15 centos7中sudo命令无法使用
  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联