私はプリプロセッサを初めて使っていますが、めったに使用しないので、この質問は愚かに思えるかもしれません。 Cプログラムでは、コンパイル時に固定の開始点と終了点を持つforループがパフォーマンス上の問題を引き起こしていることがわかりました。私は一時的にこれを手動で展開することで一時的に解決しましたが、少し汚れているようです。この中Cプリプロセッサforループ
for(int i = 0; i < 8; i++)
{
doSomeThingWithI(i, [...]);
doSomeMoreStuffWithIt(i, [...]);
foo();
[...]
}
:
doSomeThingWithI(0, [...]);
doSomeMoreStuffWithIt(0, [...]);
foo();
[...]
doSomeThingWithI(1, [...]);
doSomeMoreStuffWithIt(1, [...]);
foo();
[...]
[...]
重要なことは、私は「私」ループ内で使用しなければならないということです、これをオンにするプリプロセッサを指示する方法はあります。
[Cプリプロセッサでwhileループを書く]の可能な複製(http://stackoverflow.com/questions/319328/writing-a-while-loop-in-the-c-preprocessor) – prazuber
私はループを疑うあなたの問題です... –
このコメントが期待されています。ループにはほとんどの命令しか含まれていませんが、レイキャスターのピクセルごとに実行されます。パフォーマンスの観点からfpsで測定された非ロールアウトとロールアウトされたforループの違いは約10.8%です。 – Addi