我的问题是关于何时应该用externC中的关键字引用函数.
我没有看到何时应该在实践中使用它.在我编写程序时,我使用的所有函数都通过我包含的头文件提供.那么为什么extern访问头文件中没有公开的东西会有用呢?
我可能会想到如何extern正确地工作,如果是这样,请纠正我.
编辑:如果extern是头文件中没有关键字的默认声明,你应该做些什么吗?
在C中,您可以拥有可在文件中的每个位置查看的外部静态变量,而内部静态变量仅在函数中可见但是持久
例如:
#include <stdio.h>
void foo_bar( void )
{
static counter = 0;
printf("counter is %d\n", counter);
counter++;
}
int main( void )
{
foo_bar();
foo_bar();
foo_bar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出将是
counter is 0
counter is 1
counter is 2
Run Code Online (Sandbox Code Playgroud)
我的问题是你为什么要使用内部静态变量?如果你不希望你的静态变量在文件的其余部分可见,那么该函数真的不应该在它自己的文件中吗?