switch ステートメントの代わりに関数ポインターを使用するにはどうすればよいですか?
5619 次
2 に答える
7
ars によって投稿されたリンクとは少し異なるアプローチ: switch ステートメントの値を、関数ポインターの配列内の配列インデックスとして使用できます。だから書く代わりに
switch (i) {
case 0: foo(); break;
case 1: bar(); break;
case 2: baz(); break;
}
あなたはこれを行うことができます
typedef void (*func)();
func fpointers[] = {foo, bar, baz};
fpointers[i]();
または、arsの回答で説明されているように、数値の代わりに関数ポインターを使用できます。
于 2009-07-16T00:22:14.023 に答える
3
C++ でこれを説明するのにかなり良い仕事をしているページは次のとおりです。
編集:
上記のリンクは 2020 年 6 月の時点で壊れています。ここにキャッシュされています。
于 2009-07-15T06:20:13.297 に答える