スレを勃てるまでもないC/C++の質問はここで 21
■ このスレッドは過去ログ倉庫に格納されています
0781デフォルトの名無しさん
2014/01/01(水) 12:05:29.36呼び出したい関数が、ただの関数なのかクラスのメンバ関数なのか、さらに
メンバ関数の場合、仮想関数(virtual)なのか、オーバーロードされているか
どうかによって多少異なる。
普通の関数なら、C言語のみの記述でも、下記のようなデータ構造で名前と
関数エントリを管理することはできる。 ただ、下記のように単純にテーブル
から関数ポインタを取得して呼び出す場合、引数の並びと、順序毎の引数の
型はすべての関数で同じでなければならない。 引数をスタックに積むのと、
スタックの解放は、呼び出し側で行うので、引数の数が多い分には構わない。
typedef struct func_info
{
char func_name[32];
void (*func_entry)();
} FUNC_INFO;
static FUNC_INFO func_table[]={{"strcpy",strcpy}
,{"strcat",strcat}
,{"strlen",strlen}};
>>780
int *p[2];
ただ、ポインタでは要素の数は管理できないし、両者の区別もできない。
■ このスレッドは過去ログ倉庫に格納されています