次の方法で共有


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 つの後続のステートメントに適用されますが、これは構造化ブロックである必要があります。