<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 から呼び出されました
小さなプログラムでは気にしなくても動きますが、大規模になると「役割ごとにファイルを分ける」ことが多いので、覚えておくと便利です