gpt4 book ai didi

c - 带有函数名称的 extern 关键字

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:41 24 4
gpt4 key购买 nike

我知道 static 关键字使 C 函数/变量是文件范围的。我读过如果我想创建一个变量全局范围(由多个文件访问),我应该这样做:

.c文件中:

int my_global_var;

// main()....

.h文件中:

extern int my_global_var;

因此,任何包含我的.h 文件的人都将能够引用已经externed 的my_global_var

我还读到这也是函数所必需的,但我使用的是 gcc 4.x,我没有 extern .h 文件中的函数,并且其他程序可以成功链接它。

那么,问题是……

非静态函数链接的行为是默认的还是我应该 extern 非静态函数以遵守标准 ??

最佳答案

来自标准,6.2.2

5 If the declaration of an identifier for a function has no storage-class specifier, its linkage is determined exactly as if it were declared with the storage-class specifier extern. If the declaration of an identifier for an object has file scope and no storage-class specifier, its linkage is external.

意思是,它默认是外部的。

关于c - 带有函数名称的 extern 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094052/

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