關於_OPENMP預編譯

最近在看一個程序,程序中有"#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是由編譯器相關,而不是在代碼中定義的。測試

相關文章
相關標籤/搜索