首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这个如何会报重定义

2012-07-24 
这个怎么会报重定义啊for(int i 0i height++i){for(int j 0j width++j){(*(imagedata + i * w

这个怎么会报重定义啊
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按钮

热点排行