在 C 中,当在函数上声明 extern
或 static
说明符时,正确的语法用法是什么 -
仅在申报时?在定义上?两个都?和变量一样吗?
谢谢!
最佳答案
声明一个extern
函数:
关键字 extern
只能在声明(而不是定义)函数时使用。请注意,默认情况下,函数具有外部链接,因此函数声明中的关键字 extern
是多余的。
extern void doSomething();
定义一个 extern
函数:
不应使用extern
关键字指定函数定义。该定义可以在另一个 cpp 文件中。
void doSomething()
{
}
声明一个静态
函数:
static
函数将函数的使用限制在声明它的翻译单元中。声明时需要指定关键字。
static void doSomething();
定义一个静态
函数:
函数定义需要在同一个TU中定义,定义时不需要指定static
关键字。
void doSomething()
{
}
使用extern
变量:
当您想在不同的翻译单元中共享同一个全局变量时,您可以将变量声明为 extern
。
您需要使用 extern
关键字声明变量,而您需要在一个且只有一个 cpp 文件中定义它。
file1.h
extern int i;
file1.cpp
#include"file1.h"
int i = 10;
file2.cpp
#include "file1.h"
int main()
{
i = 40;
return 0;
}
关于c - extern 和 static 的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913112/