在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在函数中询问.
什么是之间的区别static inline,extern inline和正常的inline功能?
我已经看到了一些模糊的解释.据我所知,static inline不仅仅是一个inline仅在某个文件中引用的函数,因为static关键字通常意味着.这同样适用于extern inline过我想,这是不一样的解释与extern变量.任何答案将不胜感激!