这个问题在这里已经有了答案:
How do I use extern to share variables between source files?
(18 个回答)
8年前关闭。
我为什么要使用 extern
以下代码中的关键字:
头文件.h
float kFloat; // some say I should write 'extern float kFloat;', but why?
文件.c
#include <stdio.h>
#include "Header.h"
float kFloat = 11.0f;
主程序
#include <stdio.h>
#include "Header.h"
int main(int argc, const char * argv[])
{
printf("The global var is %.1f\n", kFloat);
return 0;
}
此代码有效。全局变量 kFloat 默认为外部链接和静态生命周期。
输出为:
The global var is 11.0
我不明白在哪种情况下会出现问题,谁能给我一个崩溃的例子?
最佳答案
extern
表示在您要使用的项目(或外部功能 block )中的某处定义了一个变量。它不会为它分配内存,因为您告诉编译器这是在其他地方定义的。
变量必须在程序的模块之一中定义一次。如果没有定义或有多个定义,则会产生错误,可能在链接阶段。
定义是指创建变量或分配存储的地方;声明是指声明变量性质但未分配存储空间的地方。
而且由于它可以在其他地方访问,它需要是静态的。
关于c - 为什么在 C 的 header 中使用 extern 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19198855/