for(int i=0; i <max; ++i)
一直这样写没啥毛病,似乎没有研究这个的必要吧?
一直这样写没啥毛病,似乎没有研究这个的必要吧?
解决方案 »
- 简单问题,请问PCHAR 怎么转换为 CString 类型?
- mfc还能再用多少年
- 同一工程中,如何将一个类中的ADO对象,如连接对象传给另一个类?
- 关于应用程序退出时,没调用UnhookWindowsHookEx的问题
- 释放HANDLE的问题
- 窗口句柄到bmp图片的保存问题
- 昨天第一次接吻,感觉真不错,呵呵
- 谁会编写这样的程序,是不是有点难度,不好意思只有这点分
- 请教大虾:如何用ACTIVEMOVIE控件实现卡拉OK?
- npruntime插件,火狐可以看到插件,google没有显示插件
- LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”
- winio 不能访问高端地址
倒是vc6.0中这样定义的i,作用域不止for循环内了
for(int i=0; i <max; ++i)
for(int i=0; i <max; ++i) // 正确在不完全支持标准的编译器中
for(int i=0; i <max; ++i)
for(int i=0; i <max; ++i) // 错误:i重定义 例如VC6
由于VC++封装严格,容易成为不合适的原因
这句话我想就是说:增加坠余的成员变量吧!使得整个类显得很庞大,因为你要把循环体内的变量写成成员变量
{
for(int i=0; i < max; ++i);
for(int i=0; i <max; ++i); //VC6中不能编译通过,VS2005可以正常编译通过.
}
因此不建议使用这种格式是合适的.
for(int i=0; i <max; ++i)
}
{
for(int i=0; i <max; ++i)
}
这么修改一下看看行不
for ( for-init-statement condition ; expression ) statement
也就是支持声明,「因为int i = 0不是表达式,int i = 0;却是for-init-statement」声明变量的作用域仅限于循环体,condition以及最后一个expression。在C99出来以前「C99也是支持声明的」,for在C中的语法是:
for ( expression-1 ; expression-2 ; expression-3 ) statement
「C99中为for ( clause-1 ; expression-2 ; expression-3 ) statement」
它前面的只是一个表达式,是不支持声明的。而vc6.0在C99出来以前就有了,所以如果你用vc6.0编译c的话是不支持声明的。用C++编译则是可以。
你们公司估计是为了和老的C代码(C99以前)兼容,所以不让出现你的那种形式。
2) 理由2,有些时候我们在循环后还需要处理循环变量i的结束值
总之一句话,写在for里面固然没错,但写在for外面更加没错