//file1.cpp
static int varA;
int varB;
extern void funA()
{
……
}
static void funB()
{
……
}
//file2.cpp
extern int varB; // 使用file1.cpp中定义的全局变量
extern int varA; // 错误! varA是static类型, 无法在其他文件中使用
extern vod funA(); // 使用file1.cpp中定义的函数
extern void funB(); // 错误! 无法使用file1.cpp文件中static函数
#include <stdio.h> void func(void) { int x = 1; printf("x = %d\n", x); ++x; } void main(void) { for (int i=0; i<5; ++i) { func( ); } } | #include <stdio.h>
void func(void)
{
static int x = 1; // 只會初始化一次
printf("x = %d\n", x);
++x;
}
void main(void)
{
for (int i=0; i<5; ++i)
{ func( ); }
} |
執行結果 | 執行結果 |
---|---|
x = 1 x = 1 x = 1 x = 1 x = 1 | x = 1 x = 2 x = 3 x = 4 x = 5 |