Freigeben über


2.7.2.5 default

Die Standardwert-Klausel ermöglicht es dem Benutzer, die Datenfreigabe Attribute von Variablen zu beeinflussen. Die Syntax der Standardwert-Klausel lautet wie folgt:

default(shared | none)

default(shared) für jede anzugeben, dass derzeit sichtbaren Variablen in einer Shared-Klausel explizit aufführen, es sei denn, es threadprivate oder Betrugqualifiziertest- ist. In Ermangelung einer expliziten Standardwert-Klausel ist das Standardverhalten das ebenso aus, als ob default(shared) angegeben wurden.

Das Angeben von default(none) erfordert, dass mindestens eines der folgenden Elemente für jeden Verweis auf eine Variable im lexikalischen Wertebereich des parallelen Konstrukt erfüllt werden muss:

  • Die Variable wird explizit in einer Datenfreigabe eines Konstrukts clause Attribut enthalten, das den Verweis enthält.

  • Die Variable wird innerhalb des parallelen Konstrukt deklariert.

  • Die Variable ist threadprivate.

  • Die Variable wurde const- qualifizierten Typ.

  • Die Variable ist die Schleifensteuerungsvariable für eine nach - Schleife unmittelbar folgt nach oder für Ähnlichkeit-Direktive und der variablen Verweis wird innerhalb der Schleife.

Eine Variable auf firstprivateangibt, führt lastprivateoder Verringerung-Direktive eingeschlossenen Klausel einen impliziten Verweis auf die Variable im einschließenden Kontext. Solche impliziten auch Verweise sind abhängig von den Anforderungen, die oben aufgelistet sind.

Nur eine einzige Standardwert-Klausel wird möglicherweise auf Ähnlichkeit-Direktive angegeben.

Die standardmäßige Datenfreigabe Attribut für eine Variable überschrieben werden, indem private, firstprivate, lastprivate, Verringerungund Shared-Klauseln verwendet, z. B. durch folgendes Beispiel):

#pragma  omp  parallel  for  default(shared)  firstprivate(i)\
   private(x)  private(r)  lastprivate(i)