C言語でstaticキーワードを使用してグローバルな静的変数を定義する方法は?
C言語では、staticキーワードを使うことで変数をグローバルな静的変数として定義することができます。グローバルな静的変数は以下の特徴を持っています。
- 全ての静的変数はファイルスコープ内で有効であり、変数が定義されたソースファイル内でのみアクセスでき、他のソースファイルからはアクセスできません。
- プログラムが開始してから終了するまで、すべてのクラスの静的変数はプログラム全体の実行期間中に存在します。
- 全局静态变量的默认初始值是0,如果没有显式初始化,它会自动初始化为0。
以下是一个示例代码,展示如何使用static关键字定义全局静态变量:
#include <stdio.h>
static int globalStaticVar; // 定义全局静态变量
void function1() {
globalStaticVar = 10; // 在函数中访问和修改全局静态变量
}
void function2() {
printf("globalStaticVar: %d\n", globalStaticVar); // 在函数中访问全局静态变量
}
int main() {
function1();
function2();
return 0;
}
上記の例では、globalStaticVarはグローバルな静的変数です。function1()関数内でglobalStaticVarに値10を代入します。そして、function2()関数内でglobalStaticVarの値を出力します。globalStaticVarはグローバルな静的変数なので、function2()関数はfunction1()で変更された値にアクセスできます。このコードを実行すると、出力結果はglobalStaticVar: 10となります。