关于_OPENMP预编译

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

原文地址:https://www.cnblogs.com/xingzifei/p/7450455.html