【C言語】staticとexternの違いや使い方を解説

目次から探す

実際のコード例

static変数の使用例

#include <stdio.h>
void increment() {
    static int count = 0; // static変数の宣言
    count++;
    printf("count: %d\n", count);
}
int main() {
    increment(); // count: 1
    increment(); // count: 2
    increment(); // count: 3
    return 0;
}

上記のコードでは、increment関数内でstatic変数countを宣言しています。

この変数は、関数が呼び出されるたびにインクリメントされ、その値が保持されます。

そのため、countの値は関数呼び出しのたびに増えていきます。

extern変数の使用例

// 外部ファイル: extern_example.c
#include <stdio.h>
extern int globalVariable; // extern変数の宣言
void printGlobalVariable() {
    printf("globalVariable: %d\n", globalVariable);
}
// メインファイル: main.c
#include <stdio.h>
int globalVariable = 10; // extern変数の定義
extern void printGlobalVariable(); // extern関数の宣言
int main() {
    printGlobalVariable(); // globalVariable: 10
    return 0;
}

上記のコードでは、extern変数globalVariableを使用して、外部ファイルとメインファイルで変数を共有しています。

外部ファイルでglobalVariableを宣言し、メインファイルでその変数を定義しています。

そして、メインファイルでextern関数printGlobalVariableを宣言し、外部ファイルで定義された関数を呼び出しています。

これにより、メインファイルから外部ファイルの変数を参照することができます。

以上が、C言語におけるstaticとexternの違いや使い方です。

それぞれのキーワードの特徴を理解し、適切に使い分けることで、効果的なプログラミングができるでしょう。

1 2
目次から探す