C言語 staticキーワードとは?意味・使い方をわかりやすく解説

C言語では、staticキーワードは2つの異なる意味を表すために使用することができます。

  1. 関数内でstaticキーワードを使用すると、その変数や関数のスコープが定義されたソースファイル内に制限され、他のファイルからアクセスできない。さらに、static変数は関数呼び出しの終了後に破棄されず、プログラム実行中に常に存在する。
void foo() {
    static int counter = 0;
    counter++;
    printf("%d\n", counter);
}

int main() {
    foo();  // 输出1
    foo();  // 输出2
    return 0;
}
  1. staticキーワードをグローバル変数の前に置くと、その変数のスコープを制限し、定義されたソースファイル内でのみアクセスできるようにし、他のファイルからはアクセスできなくなります。
// file1.c
static int global_var = 10;

// file2.c
extern int global_var;  // 这里会报错,因为global_var的作用域被限制在file1.c内
bannerAds