解决VC6和VC2008的for循环变量作用域不同问题的一个方法
2011-09-21 14:00
731 查看
实现原理:将i的作用域限制在else{}子句的范围内. ======== VC6有个比较明显的不符合C++规范地方,就是在for语句内部定义的变量,其作用范围却会延伸到for语句之外,所以,如果使用如下的代码,会出现编译错误: for (int i=0; i<n; i++) { ...... } for (int i=0; i<n; i++) // 此处VC6会报错:变量i重复定义 { ...... } 一直用C语言或者一直用VC6的同学可能觉得这很正常,但是用惯了标准C++或更高版本VS的同学可能会感觉比较别扭、比较不方便。 其实解决方法非常简单,只要在开头添加一行宏定义: #define for if (false); else for 就行了。 用VA的同学可以直接将这行语句做成模板,以后就方便了。 经大量测试,此法不会对程序的效率造成任何不良影响。 |
相关文章推荐
- “SET 命令设置的环境变量在 FOR 循环中始终为空”问题的原因与解决方法
- 通过自执行函数解决,for循环变量泄漏的问题
- 把同一个Resource添加到同一个Group中两个不同Application导致的问题及解决方法
- 一个Struts的莫名问题解决方法:Attribute class invalid for tag present according to TLD - 巴士飞扬-专注编程,网站,专业技术
- 要求顺序循环队不损失一个空间,全部能够得到有效利用,试采用设置标志位tag的方法解决“假溢出”问题,实现顺序循环队列算法
- JavaScript的for循环中嵌套一个点击事件的问题解决
- 使用 let 解决for 循环闭包 i变量问题
- for循环中声明变量的一个问题回顾
- 关于Android DES加密算法在不同平台加密结果不同的问题的一个解决方法
- 4种方法解决为 li列表 添加事件问题(for循环经典问题)
- 一个VC6的工程转换为VS2008的工程后,编译找不到而且不能升级vc90.pdb文件的问题解决方法 2010-9-28 14:00
- js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
- JS之经典for循环闭包问题解决方法
- 问题(已解决):push pop for循环中push变量,变量随之改变的问题
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- JS之经典for循环闭包问题解决方法
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- 定义一个以is开头的全局变量利用IDEA的Getter and Setter自动生成get跟set方法出现的问题
- ld: library not found for -lXXXXX 编译问题的解决方法
- Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法