在C中,我没有注意到在函数声明之前使用extern关键字的任何影响。 首先,我认为当定义extern int f();在单个文件中强制您在文件范围之外实现它。然而,我发现:
extern int f();
int f() {return 0;}
and
extern int f() {return 0;}
编译正常,没有来自gcc的警告。我使用gcc -Wall -ansi;它甚至不接受//注释。
在函数定义之前使用extern有什么影响吗?或者它只是一个可选的关键字,对函数没有副作用。
在后一种情况下,我不明白为什么标准设计师选择用多余的关键字乱扔语法。
编辑:为了澄清,我知道在变量中有extern的用法,但我只问函数中的extern。