OpenMP 3.0 规范版本 3.0(第 2.9 节中)介绍了如何确定在并行、任务和工作共享区域中引用的变量的数据共享属性。
构造中引用的变量的数据共享属性可以是以下属性之一:预先确定、显示确定或隐式确定。具有显式确定数据共享属性的变量是那些在给定构造中引用,并在构造的数据共享属性子句中列出的变量。具有隐式确定数据共享属性的变量是那些在给定构造中引用、不具有预先确定数据共享属性,并且不在构造的数据共享属性子句中列出的变量。
有关如何隐式确定变量的数据共享属性的规则可能并不总是很直观(请参见5.2 数据环境)。因此我们建议,要避免出现任何让人感到惊讶的现象,程序员应显式确定任务构造中引用的所有变量的作用域(使用 default、shared、private 和 firstprivate 子句),而不是依赖于 OpenMP 隐式作用域规则。