我面临OpenMP程序的以下部分:
#ifdef _OPENMP
std::cout << _OPENMP << 'n';
#endif
它做什么?以及我们为什么使用#ifdef
和#endif
。
它打印版本。这在标准本身中有很好的记录:
在支持预处理器的实现中,
_OPENMP
宏名称定义为具有十进制值yyyymm,其中yyyy和mm是年份和月份名称实现支持的OpenMP API的版本。
宏需要使用#ifdef
进行检查,否则如果没有OpenMP,代码将无法编译。