vc编程中常见问题

1.  if 判断的条件语句的书写:

                if ( flag = TRUE )

               {...

               }

               一个判断语句犯了三个致命错误:判断语句中判别式用"=="而不是"="; 判别语句顺序反了,应该把判定变量放在判定语句后面;判定语句中就不能把布尔变量与TRUE/FALSE判别!所以,正确写法是:

                if ( flag )

               {...

               }

2. 资源ID定义:

         resource.h文件中定义了各种资源的ID号, 例如: 菜单,工具栏,对话框等. 当对话框等资源被删除了,resource.h文件中定义的资源ID号并不会被VC自动删除,需要程序员手动完成这项工作;

         在不同对话框中, 可以有相同的资源ID.例如, DIALOG_APP1和DIALOG_APP2都有一个BUTTON控件, 都可以定义为BTN_OPEN_FILE,这并不会影响程序的正常运行; 但必须保证在同一个对话框中不能发生ID定义冲突, 否则程序运行时可能发生错误的消息相应.例如, 在对话框DIALOG_APP1中两个BUTTON都定义为BTN_CLICK, 但你希望第一个相应消息函数BtnOpenFile(), 第二个相应消息函数BtnSaveFile(),  但不幸的是,程序会调用BtnSaveFile().

3. 不应默认if 判断条件语句的执行顺序是固定的由前到后或由后到前:

  例如:

     CSomeClass* pV;

    //......为pV指针赋值

     if (  NULL!=pV && pv->GetCount()>0 ) {...}//程序运行期间可能会出错

很多人会问,我已经先判断指针不为空才执行pV->GetCount()函数,所以不会有错. 可是, 在程序运行时, 不一定先执行NULL!=pV .所以应该修改为:

if   ( NULL!=pV ){

  if (   && pv->GetCount()>0 ) {...}

}

4. 在变量定义的同时,必须为变量赋值:

  很多程序员在函数体中不为临时变量赋初始值,可在后续的语句中又对变量的值进行使用而造成预料不到的后果。例如:  int i;

                      if (条件1){ i=0;}

                     if (条件3){i=1;}

                     if (0==i){...}

                     else {...}//本以为i为3才执行此段代码,可事实上i=4时也执行此段代码。

               

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值