Udostępnij za pośrednictwem


2.7.2.5 domyślne

Domyślną klauzula umożliwia użytkownikowi wpływają na udostępnianie danych atrybutów zmiennych.Składnia domyślną klauzuli jest w następujący sposób:

default(shared | none)

Określanie default(shared) jest odpowiednikiem jawnie aukcji każdej zmiennej aktualnie widoczne w udostępnionego klauzuli, chyba że jest to threadprivate lub wadt-kwalifikowaną.W przypadku braku jawnej domyślną klauzuli, zachowanie domyślne jest taka sama, jak if default(shared) zostały określone.

Określanie default(none) wymaga się, że co najmniej jeden z następujących muszą być prawdziwe dla każdego odwołania do zmiennej w zakresie leksykalne równoległych konstrukcji:

  • Zmienna jest wyraźnie wymienionych w klauzuli atrybut udostępnianie danych, konstrukcji, która zawiera odwołanie.

  • Zmienna zadeklarowana w obrębie konstrukcji równolegle.

  • Zmienna jest threadprivate.

  • Zmienna ma const-kwalifikacje typu.

  • Zmienna jest zmienna sterująca pętli dla dla pętli, który następuje bezpośrednio dla lub równoległych do dyrektywy i odwołania do zmiennej pojawia się wewnątrz pętli.

Określenie zmiennej na firstprivate, lastprivate, lub redukcji klauzuli zamkniętych dyrektywy powoduje niejawne odwołanie do zmiennej w kontekście okalającego.Takie informacje niejawne podlegają również wymagania wymienione powyżej.

Tylko jeden domyślną klauzula może być podany w równolegle dyrektywy.

Domyślne zmiennej może zostać zastąpiona atrybut udostępnianie danych przy użyciu prywatnego, firstprivate, lastprivate, redukcji, i udostępnionego klauzule, jak pokazano w poniższym przykładzie:

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