#pragma warning(disable: 4786)

本文详细解析了如何在MSVC中使用#pragmawarning指令来管理代码警告,包括禁用、恢复和将警告作为错误处理的方法。通过具体示例展示了如何针对不同类型的警告进行配置,帮助开发者有效提升代码质量和编译效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#pragma warning(disable 4786) 屏蔽标识符过长导致的warning;

代码实现:在.H .CPP文件开头写上:#pragma warning(disable:4996)

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

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

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

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

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

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

6. 某些警告如C4309是从上到下生效的。即文件内#pragma warning从上到下遍历,依次生效。
-----------------------------------------------

开发人员可以使用 #pragma 指令将警告作为错误处理;还可以启用或禁用警告,如下面的示例所示:


1.将一个warning作为一个错误

#pragma warning (error: 6260)

2.将一个warning禁用掉

#pragma warning (disable: 6011)

3.将一个被禁用的warning启用
#pragma warning (enable: 6011)

#pragma warning(disable: 4018) // signed/unsigned mismatch有无符号之间的赋值      

#pragma warning(disable: 4100) // unreferenced formal parameter无用参数      

#pragma warning(disable: 4245) // conversion from ’type1’ to ’type2’, 强制转换signed/unsigned mismatch      

#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template ’vector’      

#pragma warning(disable: 4702) // unreachable code      

#pragma warning(disable: 4710) // ’function’ : function not inlined      

#pragma warning(disable: 4786) // identifier was truncated to ’number’ characters in the debug information      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值