月ノ書

<C言語>静的関数と外部関数

今回の記事でわかること
  • 静的関数(static)の意味と使い方が分かる
  • 外部関数(extern)の意味と使い方が分かる
  • 関数を複数ファイルで使う方法が分かる

静的関数(static)

関数の前に static を付けると、その間数は「そのファイル内だけ」で使用できるようになります。つまり、他のファイルから呼び出せない関数を作ることができます

これは意図しない利用を防いだり、関数名の衝突を避けるために使われます

#include <stdio.h>

// static を付けた関数 → このファイル内だけで使える
static void hello(void) {
    printf("Hello! (この関数はファイル内限定)\n");
}

int main(void) {
    hello();    // OK:同じファイル内なので呼び出せる
    return 0;
}

外部関数(extern)

複数のソースファイルに分けてプログラムを書くとき、別のファイルで定義した関数を呼びたい場合があります。このとき、extern を使います

util.c(関数を定義)

#include <stdio.h>

void greet(void) {
    printf("こんにちは! util.c から呼び出されました\n");
}

main.c(関数を使う側)

#include <stdio.h>

// externで宣言することで他のファイルの関数を使える
extern void greet(void);

int main(void) {
    greet();  // util.c の関数を呼び出し
    return 0;
}

実行方法

gcc main.c util.c -o program
./program
出力結果
こんにちは! util.c から呼び出されました

小さなプログラムでは気にしなくても動きますが、大規模になると「役割ごとにファイルを分ける」ことが多いので、覚えておくと便利です

学習進捗

0
Would love your thoughts, please comment.x