<分区>
Possible Duplicates:
What does “static” mean in a C program?
Static vs global
C 中“static”是什么意思,举个例子:“static struct .......”?
这和没有“static”的“struct ......”有什么区别?
标签 c
<分区>
Possible Duplicates:
What does “static” mean in a C program?
Static vs global
C 中“static”是什么意思,举个例子:“static struct .......”?
这和没有“static”的“struct ......”有什么区别?
最佳答案
在函数之外,static 使它所应用的任何内容都具有文件范围。例如:
int a_function(int x) { ... }
此函数将具有全局链接,并且可以被任何其他目标文件访问。您只需声明它即可使用它,就像通常在头文件中所做的那样:
int a_function(int x);
但是,如果您在定义中使用 static,则该函数仅对定义它的源文件可见:
static int a_function(int x) { ... }
在那种情况下,其他目标文件不能访问这个函数。这同样适用于变量:
static int x;
这使得 x 成为一个全局变量,只在它的源文件中可见。 “静态结构”本身不会做任何事情,但请考虑以下语法:
struct {
int x;
int y;
} p1, p2;
这声明了两个全局变量(p1 和 p2),每个都是“匿名”结构类型。如果附加静态:
static struct {
int x;
int y;
} p1, p2;
然后静态应用于 p1 和 p2,使它们仅在其源文件中可见。
关于c - "static"在 C 中是什么意思?`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287259/