C语言 函数声明前extern的用法?

2024-11-22 12:04:38
推荐回答(2个)
回答(1):

个人看法,仅供参考。
(1)别的就是指“这一个”以外的;C盘定义,D盘调用,原则上可以,但是麻烦,写程序应该越简单越好,不提倡这样做;“别的”原则上没有限定几层,但是最好放在同一个文件夹,原因也说了,分开放麻烦。
(2)作用相同,不完全等价。区别在哪呢?include “*.h”
int f();把“*.h”里的所有东西都搬过来(除了f()之外可能还有其他的),那么肯定包含有f();而extern int f();表示你明确知道你要调用的是“*.h”里的f()这个函数,其它你都不需要。
“这么说,如果所有外部函数声明时都加上extern就不需要include “*.h”头文件了?”是的,但是你想想,如果你所有外部函数都要用到的话,你自己手动给所有函数加上extern还是直接一个include “*.h”哪个更方便呢

回答(2):

好问题

刚刚搜了一下

  1. extern是告诉编译器,当前的变量会在链接时的某个目标文件中出现

  2. 函数默认是extern的,因此是冗余的

  3. 最佳实践:假如有个模块叫x,在x.h里定义extern 变量,在x.c里定义变量的值

  4. 英文好的话自己看网页链接