Freigeben über


Compilerfehler C3012

"systemintern" : Systeminterne Funktion ist nicht direkt innerhalb eines parallelen Bereichs zulässig

Eine systeminterne Compilerfunktion ist in einem omp parallel Bereich nicht zulässig. Um dieses Problem zu beheben, verschieben Sie systeminterne Elemente aus dem Bereich, oder ersetzen Sie sie durch nicht systeminterne Entsprechungen.

Beispiel

Im folgenden Beispiel wird C3012 generiert, und es wird eine Möglichkeit zum Beheben gezeigt:

// C3012.cpp
// compile with: /openmp
#ifdef __cplusplus
extern "C" {
#endif
void* _ReturnAddress();
#ifdef __cplusplus
}
#endif

int main()
{
   #pragma omp parallel
   {
      _ReturnAddress();   // C3012
   }
   _ReturnAddress();      // OK
}