下面的宏使我感到困惑。我想知道什么是__pragma和wwhat是__pragma和#杂注之间的区别。
#define OPENVDB_START_THREADSAFE_STATIC_WRITE __pragma(warning(disable:1711))
#define OPENVDB_FINISH_THREADSAFE_STATIC_WRITE __pragma(warning(default:1711))
发布于 2014-05-21 17:32:49
#pragma
本身就是一个预处理器指令;不能在#define
指令中使用它。
因此,这就是__pragma
存在的原因:它提供了一种方法,可以从使用它的宏扩展的任何地方发出编译指示。
这是一个非标准的编译器扩展(MSVC、Intel和一些C编译器在不同程度上支持它)。另请参阅较新版本的C/C++标准中定义的_Pragma
operator (用途相同,但语法略有不同)。
https://stackoverflow.com/questions/23790112
复制相似问题