コンパイル時に for ループを何回反復する必要があるかを知ることには利点がありますか?
たとえば、状況によっては、コンパイラは次の条件でより高速に実行される実行可能ファイルを生成できます。
#define ITERATIONS 10
int foo()
{
for (int i=0; i < ITERATIONS; i++){
do_something();
}
}
これよりも:
int foo(int iterations)
{
for (int i=0; i < iterations; i++){
do_something();
}
}
これが普遍的なケースではない場合、それらの状況はどのようなものですか?
私の懸念は OpenCL の特定のケースにあるため、これが C と異なるかどうかも知りたい.