次の方法で共有


2.1 ディレクティブの書式

OpenMP ディレクティブの構文は、形式的には付録 C の文法によって指定されます。略式的には次のとおりです。

#pragma omp directive-name  [clause[ [,] clause]...] new-line

各ディレクティブは、同じ名前の他の (非 OpenMP またはベンダによる OpenMP 拡張の) pragma ディレクティブと競合しないように #pragma omp で始まります。ディレクティブの残り部分は、コンパイラ ディレクティブの C 規格と C++ 規格による規則に従います。特に、# の前後に空白を入れることができます。また、1 つのディレクティブ内でワードを区切るのに空白を使用する必要があります。#pragma omp の後のプリプロセッサ トークンはマクロ置換の対象になります。

ディレクティブでは大文字と小文字が区別されます。ディレクティブ内に句が現れる順番に意味はありません。ディレクティブ上の句は、必要な場合、それぞれの句の説明に記載されている制約事項の範囲で、繰り返すことができます。句内に variable-list がある場合、ここには変数しか指定できません。ディレクティブごとに 1 つの directive-name のみ指定できます。たとえば、次のディレクティブは許可されません。

/* ERROR - multiple directive names not allowed */
#pragma omp parallel barrier

OpenMP ディレクティブは、最大で 1 つの後続のステートメントに適用されますが、これは構造化ブロックである必要があります。