gpt4 book ai didi

visual-c++ - _Pragma 预处理器运算符在 Visual C++ 中

转载 作者:行者123 更新时间:2023-12-04 14:51:40 25 4
gpt4 key购买 nike

是否有类似 ANSI C 运算符 _Pragma 的东西?在 Visual C++ 中?

例如,我试图定义以下宏:

#ifdef _OPENMP
#define PRAGMA_IF_OPENMP(x) _Pragma (#x)
#else // #ifdef _OPENMP
#define PRAGMA_IF_OPENMP(x)
#endif // #ifdef _OPENMP

所以我可以绕过未知的编译器警告 #pragma omp ...在较旧的 GCC 编译器中。
VisualC++ 中是否有类似的方法可用?

最佳答案

是的,但它是两个下划线:__pragma
我不确定 omp pragma 有效,但是,这里有一个使用 VC++ 的示例 optimize附注:

#define PRAGMA_OPTIMIZE_OFF __pragma(optimize("", off))

// These two lines are equivalent
#pragma optimize("", off)
PRAGMA_OPTIMIZE_OFF

编辑:我刚刚确认了 omp pragma 也可以这样使用:
#define OMP_PARALLEL_FOR __pragma(omp parallel for)

所以,是的,如果定义如下,您的宏应该可以工作(请注意,您的原始代码错误地使用了字符串化运算符 #x :
#ifdef _OPENMP
#define PRAGMA_IF_OPENMP(x) __pragma (x)
#else // #ifdef _OPENMP
#define PRAGMA_IF_OPENMP(x)
#endif // #ifdef _OPENMP

关于visual-c++ - _Pragma 预处理器运算符在 Visual C++ 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com