スポンサーリンク

無理やり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

スポンサーリンク