Оператор
Стек переменные в функциях C , вызываемые из параллельные области private
верно, но вы должны дифференцировать в вашем случае.Во-первых,
int index[10];
#pragma omp parallel
{
// index is a shared variable here
work(index);
}
Но когда дело доходит до вызываемой вами функции, представьте:
void work(int* passed_index)
{
...
}
passed_index
- указатель - фактически является private
переменной в work
.Вы можете изменить указатель, и никакой другой поток не заметит.
Но данные, на которые указывает *passed_index
, все еще доступны.