Keil C251报 ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC
本帖最后由 深山老妖 于 2024-9-7 18:23 编辑其中的两个变量,如果不初始化=0,就不会报氏是,一但初始化超过1个就会报错,初始化其中的任意一个都不会报错,只要超过2个就会报错,用的芯片是32G12K64
编译报错信息
定义的变量,不会报错时
会报错时
别的文件下的外部变量,只有一处外部引用此变量
这个错误通常发生在你在一个文件中声明了一个全局变量或函数,然后在另一个文件中试图使用它,但是两个地方的声明不匹配 DebugLab 发表于 2024-9-7 20:13
这个错误通常发生在你在一个文件中声明了一个全局变量或函数,然后在另一个文件中试图使用它,但是两个地方 ...
只要不初始化它超过两个,就不会报错,只要超过两个,就会报错,有点奇怪,如果只初始化,三个其中的任何一个,都没问题,只要初始化任意中的两个,就会报错。 已经写了一个最简单的测试程序,只有四个变量,依然会报错,真的有点搞不明白了。
本帖最后由 DebugLab 于 2024-9-8 01:11 编辑
深山老妖 发表于 2024-9-8 01:00
已经写了一个最简单的测试程序,只有四个变量,依然会报错,真的有点搞不明白了。
在函数外不能给extern修饰的全局变量声明时赋值(初始化),要用extern,全局变量声明时不能赋值,在main函数内赋值(初始化) 本帖最后由 深山老妖 于 2024-9-8 01:36 编辑
DebugLab 发表于 2024-9-8 01:10
在函数外不能给extern修饰的全局变量声明时赋值(初始化),要用extern,全局变量声明时不能赋值,在main ...
但是如果把这四个变量分开写,就可以,不会报错,或者去掉xdata,也不会报错,这个是属于使用方式的错误吗?
深山老妖 发表于 2024-9-8 01:32
但是如果把这四个变量分开写,就可以,不会报错,或者去掉xdata,也不会报错,这个是属于使用方式的错误吗 ...
哦,那就这样用好了
页:
[1]