打印
[技术支持]

MULTIPLE PUBLIC DEFINITIONS.

[复制链接]
2099|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yorkbarney|  楼主 | 2025-4-30 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

如果在编程中出现(*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS.)这类错误,应该有俩种情况(本人遇到过俩种)一起看看吧。

1.错误示例如下

2.错误解释

该报错是指,多个公共定义,意思是,一个变量或者函数重复定义了

3.解决方法情况一:关于extern的使用

下面有一个具体例子:

这种情况就会报*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS.这个错误,原因是extern使用不当,当我们使用extern外部变量声明的时候,只需要对该变量进行定义就好了,不能对该变量进行初始化,通俗来说就是不能够修改它的初值,毕竟它不属于你这个文件。

情况二:函数名和变量名“重复”

我们继续看一个例子(也是我刚刚编程遇到的):

当时就很奇怪,也是找半天没发现哪重复定义了,后来仔细一想,我定义了一个变量时main_display,还有一个函数Main_Display(),这个报错显示的是SYMBOL:MAIN_DISPLAY,会不会是无法区分大小写,后来查了一下,发现是真的无法区分大小写,当时没改变量名只是想为了好区分函数里面的变量。后来改了个变量名字就解决了。如下图所示:

https://blog.csdn.net/2301_76605333/article/details/137235859


使用特权

评论回复
沙发
powerantone| | 2025-5-23 15:42 | 只看该作者
同一个变量或函数在多个源文件中被重复定义。

使用特权

评论回复
板凳
stormwind123| | 2025-5-23 15:43 | 只看该作者
变量重复定义用extern关键字或者用静态变量。

使用特权

评论回复
地板
probedog| | 2025-5-23 19:00 | 只看该作者
如果函数很小且需要频繁调用,可以使用inline关键字在头文件中定义,但要确保在多个文件中使用时不会导致重复定义。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

1422

帖子

1

粉丝