警告设置(c++)

原创 2013年12月02日 17:49:43

通过预编译设置警告,通过方式为#pragma warning

具体方式如下:

1)  #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。

2)  #pragma warning(push)存储当前报警设置。

3)#pragma warning(push, n)存储当前报警设置,并设置报警级别为n。n为从1到4的自然数。

4)#pragma warning(pop)恢复之前压入堆栈的报警设置。在一对push和pop之间作的任何报警相关设置都将失效。

5) #pragma warning(disable: n)将某个警报置为失效

6) #pragma warning(default: n)将报警置为默认

7)  某些警告是从上到下生效的。

即文件内#pragma warning从上到下遍历,依次生效。

例如:

void func()
{
      #pragma warning(disable: 4189)
      char s;
      s = 128;
      #pragma warning(default: 4189)
      char c;
      c = 128;
}

则s = 128不会产生C4309报警,而c = 128会产生报警。

8)某些警告是以函数中最后出现的#pragma warning设置为准的,其余针对该报警的设置都是无效的。

例如:

void func()
{
      #pragma warning(disable: 4189)
      int x = 1;
      #pragma warning(default: 4189)
}

则C4189仍然会出现,因为default指令是函数的最后一条。在该文件内的其他函数中,如果没有重新设置,C4189也是以#pragma warning(default: 4189)为准。如果重新设置,同样是按照其函数中的最后一个#pragma warning为准。

9) 某些警告(MSDN认为是大于等于C4700的警告)是在函数结束后才能生效。

例如:

#pragma warning(disable:4700)
void Func()
{
int x;
int y = x;  
         #pragma warning(default:4700)  
         int z= x;
}


则y = x和z = x都不会产生C4700报警。只有在函数结束后的后的另外一个函数中,#pragma warning(default:4700)才能生效。


版权声明:本文为博主原创文章,未经博主允许不得转载。

IOS中忽略警告的三种方法

开发中xcode常常会提示一些警告,有些警告需要我们注意,并修改我们的代码,但有些警告又不是修改代码就可以去除的,对于有强迫症,容不得警告存在的程序猿来说,就是让人抓狂的一件事了。本文会详细讲解如何忽...
  • zxw_xzr
  • zxw_xzr
  • 2017年05月18日 15:06
  • 1794

mysql连接数据库警告

1、Java使用mysql-jdbc(jdbc:mysql://localhost/mydata?user=root&password=root)连接MySQL出现如下警告: Wed Jun 21 1...
  • qq_27495157
  • qq_27495157
  • 2017年06月21日 16:21
  • 77

消除C++中警告代码

常用削去警告办法
  • suchang1127
  • suchang1127
  • 2015年10月29日 07:47
  • 393

常用去除警告的方法

1  常用去警告:            #pragma warning(disable:4035) //no return value          #pragma warning(dis...
  • xiaoyafang123
  • xiaoyafang123
  • 2016年08月09日 11:34
  • 1019

Xcode关闭烦人的警告

每次在使用performSelector:方法的时候系统都会给个警告,如下图 那么如何关闭这样的警告呢?很简单,只需要添加以下代码即可让警告消失#pragma clang diagnostic pu...
  • wangkun_510
  • wangkun_510
  • 2016年10月14日 11:11
  • 1289

C++弹出消息框

如题。。。 表示刚发现的时候新鲜了一段时间 每一个按钮都是有自己的返回值的 代码如下 #include #include int main(){ int x; x=Me...
  • everlasting_20141622
  • everlasting_20141622
  • 2016年09月25日 21:27
  • 3340

用g++编译最简单的C++程序hello.C出现可以用-Wno-deprecated屏蔽的警告,想问个究竟

程序如下:      #include             main   ()      {              cout     }                警...
  • wujiangguizhen
  • wujiangguizhen
  • 2014年06月24日 17:48
  • 1598

Swift 下开启warning提示方法

Swift 下开启warning提示方法OC中可以通过#warning方法来提醒自己将来需要注意的地方,但是在目前Xcode版本中没有这样的功能产生黄色警告这时候就需要我们自己手动去让Xcode产生这...
  • ZJJeffery
  • ZJJeffery
  • 2015年05月11日 21:21
  • 2077

提示信息框(MessageBox)的应用

应用程序中的提示信息处理程序是非常出重要的部分,用户要知道他输入的资料到底正不正确 ,或者是应用程序有一些提示信息要告诉用户,都必须通过提示信息处理程序来显示适当的信息, 让用户了解下一步...
  • kyfvc
  • kyfvc
  • 2013年10月21日 17:13
  • 3752

从简入难makefile文件编写,Linux C++编程,简单vi命令

1.一个最基本的C++程序 2.第二个c++程序 3.第一个入门级别的简单的makefile 4.在makefile中定义变量。 ...
  • imxiangzi
  • imxiangzi
  • 2015年07月12日 00:07
  • 698
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:警告设置(c++)
举报原因:
原因补充:

(最多只允许输入30个字)