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

Keil C251报 ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 2024-9-7 18:18:55 | 显示全部楼层 |阅读模式
本帖最后由 深山老妖 于 2024-9-7 18:23 编辑

其中的两个变量,如果不初始化=0,就不会报氏是,一但初始化超过1个就会报错,初始化其中的任意一个都不会报错,只要超过2个就会报错,用的芯片是32G12K64
编译报错信息
编译报错.png


定义的变量,不会报错时
不报错.png

会报错时
报错.png


别的文件下的外部变量,只有一处外部引用此变量
3.png


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2024-9-7 20:13:19 | 显示全部楼层
这个错误通常发生在你在一个文件中声明了一个全局变量或函数,然后在另一个文件中试图使用它,但是两个地方的声明不匹配
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 2024-9-7 22:39:05 | 显示全部楼层
Debu*** 发表于 2024-9-7 20:13
这个错误通常发生在你在一个文件中声明了一个全局变量或函数,然后在另一个文件中试图使用它,但是两个地方 ...

只要不初始化它超过两个,就不会报错,只要超过两个,就会报错,有点奇怪,如果只初始化,三个其中的任何一个,都没问题,只要初始化任意中的两个,就会报错。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 2024-9-8 01:00:40 | 显示全部楼层
已经写了一个最简单的测试程序,只有四个变量,依然会报错,真的有点搞不明白了。

Test.rar (25.66 KB, 下载次数: 42)

点评

在函数外不能给extern变量声明时赋值(初始化),要用extern,声明时不能赋值,再main函数内赋值(初始化)  详情 回复 发表于 2024-9-8 01:10
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2024-9-8 01:10:19 | 显示全部楼层
本帖最后由 DebugLab 于 2024-9-8 01:11 编辑
深山*** 发表于 2024-9-8 01:00
已经写了一个最简单的测试程序,只有四个变量,依然会报错,真的有点搞不明白了。

在函数外不能给extern修饰的全局变量声明时赋值(初始化),要用extern,全局变量声明时不能赋值,在main函数内赋值(初始化)
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-09 16:21:50

13

主题

96

回帖

619

积分

高级会员

积分
619
发表于 2024-9-8 01:32:14 | 显示全部楼层
本帖最后由 深山老妖 于 2024-9-8 01:36 编辑
Debu*** 发表于 2024-9-8 01:10
在函数外不能给extern修饰的全局变量声明时赋值(初始化),要用extern,全局变量声明时不能赋值,在main ...

但是如果把这四个变量分开写,就可以,不会报错,或者去掉xdata,也不会报错,这个是属于使用方式的错误吗?

微信图片_20240908013501.png


微信图片_20240908013546.png

点评

哦,那就这样用好了  详情 回复 发表于 2024-9-8 10:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2024-9-8 10:07:43 | 显示全部楼层
深山*** 发表于 2024-9-8 01:32
但是如果把这四个变量分开写,就可以,不会报错,或者去掉xdata,也不会报错,这个是属于使用方式的错误吗 ...

哦,那就这样用好了
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 03:39 , Processed in 0.149427 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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