c语言在头文件用extern声明了全局变量,包含这个头文件后运行为什么提示变量未定义
时间: 2024-06-07 13:10:12 浏览: 93
头文件不宜定义变量的原因全面解析
在 C 语言中,使用 `extern` 声明一个全局变量,这意味着该变量的定义在其他地方(通常是另一个源文件)。
当你在一个 C 源文件中引用一个在另一个源文件中声明的全局变量时,你需要在当前源文件中使用 `extern` 来声明该变量。这只是告诉编译器该变量已经被声明了,但它的定义在其他源文件中。编译器会在链接时查找该变量的实际定义。
如果你在头文件中声明了一个全局变量,但没有在任何源文件中定义它,那么当你包含该头文件时,编译器会在当前源文件中查找该变量的定义,因为它不知道该变量的实际定义在哪里。如果找不到变量的定义,编译器会报出 "未定义" 的错误。
因此,在头文件中声明全局变量并不是一个好的编程实践。通常情况下,你应该在一个源文件中定义全局变量并在头文件中声明它,以避免出现这种错误。
阅读全文