2.7.2 Clausole di attributo di condivisione dati
Diverse direttive accettano le clausole che consentono a un utente controlli gli attributi la condivisione delle variabili per l'intera durata dell'area.Condividendo le clausole di attributi si applicano solo alle variabili nell'ambito lessicale la direttiva in cui la clausola viene visualizzato.Non tutte le clausole sono consentite in tutte le direttive.L'elenco delle clausole che sono valide in una direttiva speciale viene descritto con la direttiva.
Se la variabile è visibile quando un parallelo o un costrutto di suddivisione del lavoro viene rilevato e la variabile non viene specificata in una clausola di condivisione di attributo o threadprivate la direttiva, la variabile è condivisa.Le variabili statiche dichiarate in l dinamico di un'area parallela condivise.Memoria allocata heap, ad esempio tramite malloc () in c# o C++ o nuovo l'operatore in C++) è condiviso.(Il puntatore alla memoria, tuttavia, può essere privati o condivisi.) Le variabili con durata automatica di archiviazione dichiarata in l dinamico di un'area parallela sono private.
La maggior parte delle clausole accettano un oggetto variabile-elenco argomento, ovvero un elenco delimitato da virgole di variabili visibili.Se una variabile (riferimento in una clausola dell'attributo di condivisione di dati con un tipo derivato da un modello e non esistono altri riferimenti a tale variabile nel programma, il comportamento sarà indefinito.
Tutte le variabili presenti nelle clausole direttive devono essere visibili.Le clausole possono essere ripetute in base alle necessità, ma nessuna variabile può essere specificata in più di una clausola, ad eccezione del fatto che una variabile può essere specificata sia in firstprivate e lastprivate clausola.
Nelle sezioni seguenti vengono descritte le clausole di attributo di condivisione di dati:
privato, parte 2.7.2.1 nella pagina 25.
firstprivate, parte 2.7.2.2 nella pagina 26.
lastprivate, parte 2.7.2.3 nella pagina 27.
condiviso, parte 2.7.2.4 nella pagina 27.
impostazione predefinita, parte 2.7.2.5 nella pagina 28.
riduzione, parte 2.7.2.6 nella pagina 28.
copyin, parte 2.7.2.7 nella pagina 31.
copyprivate, parte 2.7.2.8 nella pagina 32.