《windows 程序调试》读书笔记之编译器篇

--------------------+++++-------------------------
@note:
使用/W4警告级别
使用_CtrSetReportMode和_CrtReportFile
warning:/W4
C4100;参数param没有被引用的
C4127;条件表达式是常量
C4189;局部变量var被初始化,但未被引用
C4245;从type1到type2的转换不匹配
C4701;局部变量var没被初始化,便被使用
C4705;此语句无效,即空语句
C4706;在条件表达式中赋值了
C4710;函数func没有内联


在调试版本中使用/GZ帮助发现只有在编译版本中才能发现的问题
/GZ:
用OxCC模式初始化自动变量
通过 函数指针 调用函数时,检查栈指针 是否存在调用不匹配
在函数最好检查栈指针是否被改变


抑制假警告信息:
对函数参数中,没有用到的参数,在函数声明中,删除参数名
如 void MyView::OnMouseMove(UINT nFlag,Point point);
void MyView::OnMouseMove(UINT,Point point);
void MyView::OnMouseMove(UINT /*nFlag*/,Point point);

#ifdef _DEBUG
#define UNUSED(X)
#elseif
#define UNUSED(X) X
#endif


#define UNUSED_ALWAYS(X) X
#pragram warning编译器指示
在公共头文件中包含#pragram warning(disable:xxxx)消除包含此头文件的此类编译警告


消除代码模一代码块的xxxx警告
#pragram warning(disable:xxxx)
{....}
#pragram warning(default:xxxx)


在采用/W4编译过程中使用/W3编译选项
#pragram warning(push,3)
#include "xxxx.h"
#pragram warning(pop)
--------------------+++++-------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值