最近在看一个程序,程序中有"#ifdef _OPENMP",但是,在程序中一直没有找到“define OPENMP”。在查询后才知道,_OPENMP可能是编译器预定义的。可以用以下程序测试:
#include<stdio.h> int main() { #ifdef _OPENMP printf("compiled by an OPENMP_compliant implementation "); #endif return 0; }
在centos上,如果用“g++ check.cpp”编译后,运行不输出。但是,如果用“g++ -fopenmp check.cpp”编译,运行会输出那句话。因此,_OPENMP是由编译器相关,而不是在代码中定义的。