[STM32F1] 为什么一个变量的多个定义没有错误

[复制链接]
 楼主| 封存into 发表于 2025-7-18 09:04 | 显示全部楼层 |阅读模式
我在两个不同的c文件中定义了相同的全局变量
为什么编译没有得到任何错误

jcky001 发表于 2025-7-18 15:12 | 显示全部楼层
如果变量在头文件中仅声明,而在多个C文件中分别定义,且未使用static修饰,则会导致重复定义。但若编译器未启用严格检查,可能不会立即报错。
elephant00 发表于 2025-7-18 15:13 | 显示全部楼层
可能链接脚本或内存布局问题。
cr315 发表于 2025-7-18 16:12 | 显示全部楼层
在头文件中用extern声明,在一个C文件中定义。
flycamelaaa 发表于 2025-7-18 19:14 | 显示全部楼层
检查编译日志。
powerantone 发表于 2025-7-18 20:15 | 显示全部楼层
因为头文件中直接定义变量而非extern声明,导致多个C文件包含时重复定义。
stormwind123 发表于 2025-7-18 20:15 | 显示全部楼层
在头文件中用extern声明变量。
probedog 发表于 2025-7-18 20:19 | 显示全部楼层
在唯一一个C文件中定义变量。启用编译器严格模式
kzlzqi 发表于 2025-7-25 15:01 | 显示全部楼层
C 语言标准允许在多个文件中对同一全局变量进行重复定义
小夏天的大西瓜 发表于 2025-7-27 23:01 | 显示全部楼层
是不是没有使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

110

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

52

主题

110

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部