zoukankan      html  css  js  c++  java
  • #pragma warning

    #pragma warning ...    一般放在头文件的最开始位置。

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

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

    3. #pragma warning(pop) 恢复之前压入堆栈的报警设置。该句之后的代码,就恢复了warning,即在一对push和pop之间作的任何报警相关设置都将失效。

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

    5. #pragma warning(default: n) 将报警置为默认。

    #pragma warning(push)是保存当前的编译器警告状态;
    #pragma warning(pop)是恢复原先的警告状态。
    例如:
    #pragma warning( push )
    #pragma warning( disable : 4705 )
    #pragma warning( disable : 4706 )
    #pragma warning( disable : 4707 )
    // Some code
    #pragma warning( pop )
    这样在编译Some code部分的代码时,4705、4706、4707三个警告将不会出现。

    1.将一个warning作为一个错误
    #pragma warning (error: 6260)
    2.将一个warning禁用掉
    #pragma warning (disable: 6011)
    3.将一个被禁用的warning启用
    #pragma warning (enable: 6011)

    常见 #pragma warning(disable:...),可以在预编译头文件 stdafx.h 的开始处写

    #pragma warning(disable:4996) // 可以使用 strcpy sprintf 等,而不是必须使用MS提供的安全函数 strcpy_s sprintf_s 等
    #pragma warning(disable:4786) // 4786是标识符过长导致的警告
    // disable warning C4786: symbol greater than 255 character, 
    // okay to ignore 
    #pragma warning(disable: 4786)
    
    #pragma once //这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,可以代替 #ifndef .. #define.. #endif

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    4K
    4J
    4C
    I2C总线的仲裁机制
    Linux C中strcpy , strncpy , strlcpy 的区别
    Linux下的USB总线驱动(一)
    C/C++ 语言中的表达式求值
    const变量通过指针修改问题
    关于协议栈XDATA,内存溢出的小结
    Ubuntu安装ssh,及失败解决方案
  • 原文地址:https://www.cnblogs.com/htj10/p/11567159.html
Copyright © 2011-2022 走看看