如何删除#pragma区域上的GCC警告?

n1bvdmb6  于 2022-11-13  发布在  其他
关注(0)|答案(5)|浏览(274)

如何删除#pragma region上的GCC警告?我添加pragma region是为了方便查看代码,但它报告了#pragma region上的警告。我使用的是Visual Studio 2010。

zvokhttg

zvokhttg1#

gcc具有以下警告标志:

-Wunknown-pragmas遇到GCC无法理解的#pragma指令时发出警告。如果使用此命令行选项,甚至会对系统头文件中的未知pragma发出警告。如果警告仅由-Wall命令行选项启用,则不会出现这种情况。

通常你可以否定它,这意味着未知的pragma不会被警告。也就是说,使用-Wno-unknown-pragmas
请注意,-Wno-unknown-pragmas必须在任何开启此警告的命令列旗标之后,例如-Wall-这也会停用所有未知pragma的警告,因此请小心使用。

3ks5zfa0

3ks5zfa02#

不要在GCC上使用它?:)
目前我能想到的最简单的解决方案是使用预处理器条件语句:

#ifndef __GNUC__
#pragma region
#endif

// Stuff...

#ifndef __GNUC__
#pragma endregion
#endif

不是很好看或可读,但将使代码编译没有警告的GCC。

3okqufwl

3okqufwl3#

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
... Code using Unknown pragmas ...
#pragma GCC diagnostic pop
nhaq1z21

nhaq1z214#

它似乎是MSVC特定的pragma,因此您应该使用

#ifdef _MSC_VER
#pragma region
#endif

<code here>

#ifdef _MSC_VER
#pragma endregion
#endif
nwlls2ji

nwlls2ji5#

如果注解了#pragma region#pragma endregion行,编辑器可能仍然能够解析它并使用折叠特性,而不会发出任何警告。
我已经在VSCode 1.70.2上测试了它,这个变通办法很有效。

相关问题