封存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 语言标准允许在多个文件中对同一全局变量进行重复定义
页: [1]
查看完整版本: 为什么一个变量的多个定义没有错误