重複の可能性:
call a function named in a string variable in c
Dynamically invoking any function by passing function name as string文字列をCの関数ポインタにキャストするには?
私が言う..特定の機能を持って、
double fA1B1C1(..) {
...
}
double fA2B2C3(..) {
...
}
double (*fptr)(..);
fptr myfunc;
これらの機能は、すでに定義されています。ユーザーが文字列「A2B2C2」を入力するとき
だから、それが変数になったと「fA2B2C2」
myfunc = formatted_string; // DOES NOT WORK
に変換しかし、上記の構文は動作しませんされています。型キャストしても動作しません。
myfunc = (fptr) formatted_string // DOES NOT WORK
しかし、私はハード
myfunc = fA2B2C2
(または)myfunc = &fA2B2C2
としてそれをコーディングする場合、それはpefectly動作します。
どこが間違っていますか?
EDIT ::
I tried creating a hash table and a lookup function. Like
create_hashEntry(hashtable, string, formatted_string);
// string = "A1B1C1; formatted_string = "fA1B1C1"
ルックアップ機能
myfunc lookup_func(char *string) {
return(get_hashEntry(hahstable, string));
}
これも動作するように失敗しました。
重複:http://stackoverflow.com/questions/1118705/call-a-function-named-in-a-string-variable-in-c – GManNickG
スクリプト言語としてCを間違えています。 –
*(名前、関数)のペアをハッシュテーブルに追加しましたか?はい? (そしてあなたもルックアップ機能を実行する前に?)あなたのコードはこれを表示せず、コメントだけを表示します。 – dave4420