以下宏让我困惑.我想知道什么是__pragma以及__pragma和#pragma之间的区别是什么.
#define OPENVDB_START_THREADSAFE_STATIC_WRITE __pragma(warning(disable:1711))
#define OPENVDB_FINISH_THREADSAFE_STATIC_WRITE __pragma(warning(default:1711))
Run Code Online (Sandbox Code Playgroud)
Cam*_*ron 12
#pragma是一个预处理器指令本身; 它不能在#define指令中使用.
因此,这就是__pragma存在的原因:它提供了一种方法,可以从扩展使用它的宏的任何地方发出编译指示.
这是一个非标准的编译器扩展(MSVC,Intel,以及一些C编译器在不同程度上支持它).另请参阅在较新版本的C/C++标准中定义的_Pragma运算符(并且用于相同的目的,但语法略有不同).
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |