蒹霞苍苍白露为霜
分类: C/C++
2015-06-11 08:55:41
//#pragma warning(disable:4508 4101 4700)
#pragma warning(disable:279 1125) //只适合于intel C++编译器(VC 警告一般>4000 & < 5000)
在VC++中编译以下程序,会产生3个告警warnings
1 #include "stdio.h" 2 3 int main() 4 { 5 int x, y, z; 6 y = x; 7 }复制代码
--------------------Configuration: foo1 - Win32 Debug--------------------
Compiling...
entry.cpp
f:/foo/foo1/entry.cpp(7) : warning C4508: 'main' : function should return a value; 'void' return type assumed
f:/foo/foo1/entry.cpp(5) : warning C4101: 'z' : unreferenced local variable
f:/foo/foo1/entry.cpp(6) : warning C4700: local variable 'x' used without having been initialized
Linking...
foo1.exe - 0 error(s), 3 warning(s)
如果不希望这些告警出现,可以使用#pragma指令
1#include "stdio.h" 2 3#pragma warning(disable:4508 4101 4700) 4 5int main() 6{ 7 int x, y, z; 8 y = x; 9}复制代码
编译结果中就不会有告警了:
--------------------Configuration: foo1 - Win32 Debug--------------------
Compiling...
entry.cpp
Linking...
foo1.exe - 0 error(s), 0 warning(s)
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。