相关疑难解决方法(0)

extern关键字对C函数的影响

在C中,我没有注意到extern函数声明之前使用的关键字的任何影响.起初,我认为extern int f();在单个文件中定义时会强制您在文件范围之外实现它.但是我发现两者都是:

extern int f();
int f() {return 0;}
Run Code Online (Sandbox Code Playgroud)

extern int f() {return 0;}
Run Code Online (Sandbox Code Playgroud)

编译得很好,没有gcc的警告.我用过gcc -Wall -ansi; 它甚至不接受//评论.

extern 在函数定义之前使用是否有任何影响?或者它只是一个可选的关键字,对函数没有副作用.

在后一种情况下,我不明白为什么标准设计师选择用多余的关键词来乱丢语法.

编辑:澄清一下,我知道extern变量的用法,但我只是extern函数中询问.

c syntax standards

162
推荐指数
6
解决办法
18万
查看次数

函数应该在头文件中"extern"吗?

应该extern在头文件中进行功能吗?或者他们extern是默认的?

例如,我应该这样写:

// birthdays.h
struct person find_birthday(const char* name);
Run Code Online (Sandbox Code Playgroud)

或这个:

// birthdays.h
extern struct person find_birthday(const char* name);
Run Code Online (Sandbox Code Playgroud)

c extern

40
推荐指数
4
解决办法
3万
查看次数

标签 统计

c ×2

extern ×1

standards ×1

syntax ×1