最近在看一个程序,程序中有"#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是由编译器相关,而不是在代码中定义的。