共用方式為


如果 (OpenMP)

指定在平行或序列時,是否執行迴圈。

if(expression)

備註

其中,

  • expression
    整數運算式,它會評估為 true (零),如果會造成程式碼在平行區域平行地執行。 如果運算式評估為 false (0),在平行區域中執行序列 (藉由單一執行緒)。

備註

if適用於下列指示詞:

如需詳細資訊,請參閱 2.3 平行建構

範例

// omp_if.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>

void test(int val)
{
    #pragma omp parallel if (val)
    if (omp_in_parallel())
    {
        #pragma omp single
        printf_s("val = %d, parallelized with %d threads\n",
                 val, omp_get_num_threads());
    }
    else
    {
        printf_s("val = %d, serialized\n", val);
    }
}

int main( )
{
    omp_set_num_threads(2);
    test(0);
    test(2);
}
  

請參閱

參考

OpenMP 子句