读书人

这个如何会报重定义

发布时间: 2012-07-24 17:47:58 作者: rapoo

这个怎么会报重定义啊
for(int i = 0;i < height;++i)
{
for(int j = 0;j < width;++j)
{
(*(imagedata + i * width + j)).blue = 0;
//(*(imagedata + i * width + j)).green = 0;
//(*(imagedata + i * width + j)).red = 0;
}
}
//初始化旋转后图片的像素数组
for(int i = 0;i < 2 * height;++i)
{
for(int j = 0;j < 2 * width;++j)
{
(*(imagedataRot + i * 2 * width + j)).blue = 0;
//(*(imagedataRot + i * 2 * width + j)).green = 0;
//(*(imagedataRot + i * 2 * width + j)).red = 0;
}
}
这个怎么会报重定义啊 error C2374: 'i' : redefinition; multiple initialization

[解决办法]
不同的编译器对for语句中定义的变量的生命周期控制不一样。
有的在for语句结束后变量声明周期结束,有的在函数内for语句以下都有效。
可以试试,VC6和VC2005好像就不一样。
[解决办法]
VC6编译器的Bug

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
右边Visual C++ 2010 Express下面的Select language...下拉选‘简体中文’,再按Install Now按钮

读书人网 >C++

热点推荐