私は本質的にの実装を書いていprintf
ます。文字列内で多くの文字列を渡すことができるようにしたいです。
kprintf("Hello %s", "Goodbye %s", "Farewell\n");
理由を聞かないでください。非常識かもしれません。とにかく、渡される文字列に含まれる % 文字の数を探した後、再帰的に自分自身を呼び出します。そのため、複数の % が含まれている場合は、多くの引数を渡す必要があります。ただし、これを優雅に実現することはできませんでした。以下を参照してください。
case 1:
kprintf(str, argus[0]);
break;
case 2:
kprintf(str, argus[0], argus[1]);
break;
case 3:
kprintf(str, argus[0], argus[1], argus[2]);
break;
case 4:
kprintf(str, argus[0], argus[1], argus[2], argus[3]);
break;
case 5:
kprintf(str, argus[0], argus[1], argus[2], argus[3], argus[4]);
break;
argus
ポインターの配列として。これはうまくいきますが、私はそれが嫌いです。可変引数を関数に渡す方法はありますか?