C言語におけるリフレクション(2)
とりあえず、仮想メモリ空間上のアドレスさえ分かれば呼べるらしい。
#include <stdio.h> void func1() { printf("this is func1\n"); return; } int main(int argc, char* argv[]) { printf("func1 is %p\n", func1); void (*func)(); func = (void*) 0x80483a0; //事前に調べた :P printf("func is %p\n", func); func(); return 0; }
ビルド&実行
mir@t43:~/scratch$ gcc -Wall -o foo foo.c mir@t43:~/scratch$ ./foo func1 is 0x80483a0 func is 0x80483a0 this is func1