10.02.2013 Aufrufe

Untitled

Untitled

Untitled

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.2 Zugriff auf Variablen und Kommunikation zwischen Threads 39<br />

Listing 3.5. Datenzugriffsklausel bei einer statischen Elementvariablen<br />

einer Klasse in C++.<br />

class ClassWithStaticMembers {<br />

// ...<br />

static int n;<br />

// ...<br />

};<br />

// ...<br />

#pragma omp parallel for<br />

//<br />

shared(ClassWithStaticMembers::n)<br />

...<br />

1. Die Deklaration der Variable (d. h., ihr lexikalischer<br />

Gültigkeitsbereich) muss die Direktive, in deren Klauseln<br />

sie auftaucht, vollständig umfassen.<br />

2. Eine Datenzugriffsklausel kann sich nicht auf einzelne<br />

Bestandteile von Objekten beziehen, sondern immer<br />

nur auf das Objekt in seiner Gesamtheit. Datenzugriffsklauseln<br />

können also Variablen enthalten, die<br />

Strukturen- oder Klassentypen sind. In diesem Fall wird<br />

der Zugriff für alle Felder der Struktur oder der Klasse<br />

gleich geregelt, nicht aber nur auf einzelne Attribute<br />

solcher Variablen.<br />

3. Eine Ausnahme bilden statische Elementvariablen einer<br />

Klasse in C++, die – voll qualifiziert – in Datenzugriffsklauseln<br />

stehen dürfen, wie Listing 3.5 zeigt.<br />

4. Auf eine Direktive dürfen mehrere private-undshared-<br />

Klauseln folgen, eine gegebene Variable darf jedoch immer<br />

nur in höchstens einer dieser Klauseln auftauchen.<br />

Eine Variable kann nicht gleichzeitig gemeinsam und<br />

privat genutzt werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!