無理やりstatic関数を別ファイルから呼び出したいとき
一時的なデバッグなど、どうしてもstatic関数を別ファイルから呼び出したいときは、
別ファイルからstatic関数を定義しているファイルをincludeするという手もあります。
(もちろんおすすめの方法ではありません)
例えば、func.cにstatic関数を定義します。
$ cat func.c
#include <stdio.h>
static void func(){
printf("func\n");
return;
}
sample.cからfunc.cをincludeします。
そして、sample.cのmain()から、func.cのstatic関数func()を呼び出します。
$ cat sample.c
#include <stdio.h>
#include "func.c"
int main(){
func();
return 0;
}
コンパイルをして、
$ gcc -o sample sample.c
実行するとfunc()が実行されているのが確認できます。
$ ./sample func
