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