如何清除#pragma region
上的GCC警告? 我添加了pragma region
來輕鬆查看代碼,但它報告#pragma region
上的警告。 我正在使用Visual Studio 2010.如何刪除#pragma區域的GCC警告?
回答
不要在GCC上使用它? :)
我可以在那一刻想到的最簡單的辦法就是使用預處理條件吧:
#ifndef __GNUC__
#pragma region
#endif
// Stuff...
#ifndef __GNUC__
#pragma endregion
#endif
不是很好看或可讀的,但將使代碼編譯不會對GCC警告。
可以很容易地被宏觀化爲可讀性 – altendky
@altendky我不確定它,因爲它被Visual Studio編輯器用來表示可以摺疊的區域。這取決於Visual Studio編輯器解析器的優點。 –
@altendky - 如何?宏的* replacement-list *中的單個'#'(而不是'##')不會標識預處理器指令。它是stringify操作符。 '#'操作符後面的東西必須是一個宏參數名稱。 –
GCC有這樣的警告標誌:
-Wunknown的編譯指示 當遇到一個#pragma指令未通過GCC明白警告。如果使用此命令行選項,則甚至會爲系統頭文件中的未知編譯指示發出警告 。這是 而不是 這種情況下,如果警告僅由-Wall命令行選項啓用。
按照慣例,您可以否定它,這意味着未知的雜注將不會被警告。也就是說,使用-Wno-unknown-pragmas
。
請注意,-Wno-unknown-pragmas
必須出現在啓用此警告的任何命令行標誌之後,例如-Wall
- 這也會禁用所有未知編譯指示中的警告,因此請小心使用。
只是爲了迂迴,此選項會關閉_all_ pragmas的警告,無法選擇哪些編譯指示碼應該生成警告,哪些不應該。 –
是的,@JoachimPileborg和這個診斷('unknown-pragmas')有時可以挽救生命,如果你搞砸了'omp'編譯指示或類似的東西... –
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
... Code using Unknown pragmas ...
#pragma GCC diagnostic pop
由於你也在Windows上構建,你可能想要將其封裝在:#ifdef __GNUC__ – Eric
這似乎是一個MSVC特定的編譯,所以你應該使用
#ifdef _MSC_VER
#pragma region
#endif
<code here>
#ifdef _MSC_VER
#pragma endregion
#endif
- 1. 刪除#pragma一次警告
- 2. 如何禁用#pragma警告?
- 3. 如何禁用特定的未知#pragma警告? (GCC和/或鐺)
- 4. 的#pragma警告(推)有無#pragma警告(POP)
- 5. #pragma警告不會抑制警告
- 6. 忽略#pragma的警告
- 7. #pragma警告 - 文件特定?
- 8. HBase:如何刪除區域
- 9. GCC -WeffC++警告
- 10. gcc:__fread_chk_warn警告
- 11. 如何刪除警告的Java
- 12. 如何刪除特定的Cobertura警告?
- 13. 如何刪除此警告在WordPress的
- 14. 如何刪除警告下面的mysqli
- 15. IOS,刪除警告?
- 16. 想刪除警告:
- 17. 如何刪除從EasyMock.anyObject(List.class)警告稱
- 18. 如何刪除警告有關SVN
- 19. 如何刪除這些警告
- 20. 如何刪除移位/減少警告?
- 21. 如何添加警告模式刪除
- 22. 如何刪除這個mysql警告
- 23. 如何刪除警告LNK4217和LNK4049
- 24. 如何刪除以下警告?
- 25. 刪除重複的警告
- 26. 刪除MyEclipse中的警告
- 27. GCC的#pragma中斷
- 28. gcc - 刪除「在此函數中未初始化」使用警告
- 29. 如何刪除與WMI的DNS區域
- 30. 如何修復以下gcc警告?
你在Visual Studio 2010 GCC編譯? – logoff
可能有用的閱讀:http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html – altendky
我的建議:重構代碼。將區域變成單獨的功能。 – user877329