有个编译器的警告怎么看都不太懂啊,请大家帮忙

mehehe 2006-08-28 05:11:09
在 /Ze 和 /Zc:forScope 下,for 循环中定义的变量在 For 循环结束之后超出范围。如果在包含 For 循环的范围内再次使用与循环变量同名但在封闭循环中定义的变量,则出现此警告。例如:

// C4258.cpp
// compile with: /Zc:forScope /W1
int main()
{
int i;
{
for (int i =0; i < 1; i++)
;
i = 20; // C4258 i (in for loop) has gone out of scope
}
}
它这里说的警告有什么意义啊,如果不管他的话可能会出现什么样的错误呢?
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mehehe 2006-08-30
  • 打赏
  • 举报
回复
谢谢大家的回复,感觉豁然开朗,以后编程要努力了
a_b_c_abc10 2006-08-28
  • 打赏
  • 举报
回复
容易引发逻辑错误。
pilixuanke 2006-08-28
  • 打赏
  • 举报
回复
blue_zyb() ( ) 信誉:100 Blog 2006-08-28 17:35:00
TO:楼上
这个不能算是warning了,应该算作error
怎么是error呢?上面还有一个i的定义啊~

/////////////////////////////////////////
不好意思,没有看到上面还有个i, 那如果这样的话,这个warning也不应该出现啊!
可能与编译器的实现与选项有关。


blue_zyb 2006-08-28
  • 打赏
  • 举报
回复
TO:楼上
这个不能算是warning了,应该算作error
怎么是error呢?上面还有一个i的定义啊~
pilixuanke 2006-08-28
  • 打赏
  • 举报
回复
这个不能算是warning了,应该算作error。这种问题搞不好会引发出其它一些莫名其妙的问题的。建议LZ最好养成编程的好习惯!

Good Luck!
晨星 2006-08-28
  • 打赏
  • 举报
回复
“声明”,敲错了。

“out of scope”就是超出了作用域的意思思。
blue_zyb 2006-08-28
  • 打赏
  • 举报
回复
那要看具体的程序意图是怎样了,提示i (in for loop) has gone out of scope只是告诉你你现在用的i已经不是for循环范围里的那个i了
晨星 2006-08-28
  • 打赏
  • 举报
回复
i的作用域已经结束了。
在for的括号中声时的变量,其作用域到for的循环体结束为止。

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧