gpt4 book ai didi

c - 为什么在 C 的 header 中使用 extern 关键字?

转载 作者:行者123 更新时间:2023-12-04 11:18:14 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com