0

次のコードを単純化したい:

switch (index)
    {
    case 1:
        output = function1();
        break;
    case 2:
        output = function2();
        break;
    case 3:
        output = function3();
        break;
    ....

はコンパイルindex時定数です。

プリコンパイラ マクロを使用する場合は、n何回も使用する必要がありnます。上記のコードを O(1) 行のコードに減らすにはどうすればよいですか?

4

3 に答える 3

3

マクロでそれを行うことはできません-しかし、これは機能します(私は思う):

int (*functions[])() = { &function1, &function2, &function3};

int output = functions[index]();
于 2012-12-03T05:14:47.147 に答える