100个windows平台C++开发错误之八编程

更多精彩内容,请见:http://www.16boke.com


by zxy,Java/C++编程交流群:168424095

(36)有些人曾遇到if分支语句不执行的错误,例如:判断一个int型变量是否在2和10之间,以下写法是错误的

    if (2 <i <10){   

    }else{

    }

关系操作符(<、<=、>、<=)具有左结合特性。事实上,由于关系操作符返回bool 类型的结果,很少使用其左结合特性。上式10大于1值为true和i值没有关系。这是因为第二个小于操作符的左操作数是第一个小于操作符的结果:true 或 false。也就是,该条件将10与整数0或1做比较。为了实现我们想要的条件检验,应重写上述表达式如下:if (2 < i && i < 10) { /* ... */ }

结论:不应该串接使用关系操作符

(37)如果某个数字常量以“0”开头(单纯的数字0除外),那么编译器会认为这是一个8进制数字

 

(38)error C2065: “CString”: 未声明的标识符

包含#include<afx.h>头文件,且右键选择工程->属性->配置属性->常规->MFC的使用改为:在静态库中使用 MFC,否则编译出现下面的错误信息。

c:\program files\microsoft visual studio9.0\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error :  Building MFC application with /MD[d] (CRT dllversion) requires MFC shared dll version. Please #define _AFXDLL or do not use/MD[d]

(39)为了兼容性最好将for语句头的名字定义在for语句外面,否则会造成在有的情况下编译通不过。

即:for(inti = 0;i <10; ++i)最好写成

int i =0;

for(i =0;i < 10; ++i)

因为在标准化之前的C++中,定义在for语句头的名字在for循环外是可以访问的。而标准化之后是不可以的。

(40)fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory

改为#include <iostream>


更多精彩内容,请见:http://www.16boke.com

你可能感兴趣的:(100个windows平台C++开发错误之八编程)