由于VC6对标准C++支持并不太好,例如
for(int i(0);i<6;++i){}
for(int i(0);i<6;++i){}
在VC6中编译通不过,原因是第二个i重定义,但是c++标准是正确的。
在vs2005中这一bug解决了,但是考虑到两者的移植性,我们可以在
VC6的stdafx.h中添加如下定义
#if _MSC_VER<1400 //消除VS2005版本前的缺陷
#define for if(0);else for //不用考虑效率,编译器自动优化掉无用的if(0)
#endif
从而解决了vc6的工程在vc2005编译中出现几十个未定义的错误
相关文章
- 编一个函数求n的阶乘;使用for语句和while语句求n的阶乘;关于简单阶乘的求和(C)
- 关于在SQL语句中记录添加时间和修改时间的简单用法:invalid default value for create_time
- 关于oracle sql语句查询时表名和字段名要加双引号的问题
- SQL语句:关于复制表结构和内容到另一张表中的SQL语句
- 关于Oracle处理DDL和DML语句的事务管理
- 关于SQL语句中的AND和OR执行顺序遇到的问题
- 关于同一表中A列和B列,选取出A列值相同的B列的sql语句
- 关于同一表中A列和B列,选取出A列值相同的B列的sql语句
- [转]关于oracle sql语句查询时表名和字段名要加双引号的问题
- VC6和VC2005关于for语句的移植