解决VC6和VC2008的for循环变量作用域不同问题的一个方法
来源:互联网 发布:腾讯新闻php面试题 编辑:程序博客网 时间:2024/06/04 19:05
实现原理:将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的同学可以直接将这行语句做成模板,以后就方便了。
经大量测试,此法不会对程序的效率造成任何不良影响。
========
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的同学可以直接将这行语句做成模板,以后就方便了。
经大量测试,此法不会对程序的效率造成任何不良影响。
- 解决VC6和VC2008的for循环变量作用域不同问题的一个方法
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- for循环变量作用域的范围
- 读取文件行时变量的作用域 for循环和while循环的作用域
- ES6 中 let的在for循环中变量作用域问题的探讨
- 注意for循环中变量的作用域
- 注意for循环中变量的作用域
- 注意for循环中变量的作用域
- js中for循环变量的作用域
- for循环中声明变量的一个问题回顾
- JavaScript变量作用域的一个问题
- 问题(已解决):push pop for循环中push变量,变量随之改变的问题
- JavaScript中几种常用的解决for循环中引用同一循环变量对象的方法
- shell循环中变量的作用域问题
- 发一个VC2008转VC6.0的软件
- 关于JS中for循环时,作用域问题和this指针指向的总结
- VC6.0转成VC2008可能出现的问题
- uva oj 401
- NOR和NAND flash比较
- Java初级--反射
- Delphi WebBrowser浏览器的制作方法
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
- 解决VC6和VC2008的for循环变量作用域不同问题的一个方法
- iOS5编程--下载帮助到本机
- java获得系统当前时间
- nor flash,nand flash比较
- SSH协议详解
- 简单字符设备驱动程序
- java.sql.SQLException: 数字溢出 的解决办法
- 慎用CString::MakeUpper 和 MakeLower
- NSRunLoop概述和原理