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