作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码 1:没有警告 - 没有错误......一切正常
#include <stdio.h>
int main()
{
int r = 1;
printf("using %d\n", r);
for (int k = 1; k <= 2; k++)
{
int r = r * 2;
}
return 0;
}
代码 2:错误的
#include <stdio.h>
int main()
{
int cnt = 1;
printf("using %d\n", cnt);
{
int cnt = cnt * 2;
}
return 0;
}
编译器响应:
'cnt' is used uninitialized in this function [-Werror=uninitialized]
int cnt = cnt * 2;
所以,我知道
loop
之间有一些区别。和
block
在这种情况下,但我无法弄清楚。谁能告诉我如何
scope of a variable
在这里工作?
最佳答案
他们都有完全相同的问题,即 r
和 cnt
在各自的程序中自初始化。
这可能是未定义的,因为如果它们碰巧具有陷阱表示,则使用未初始化的变量(具有不确定的值)。gcc
碰巧在一种情况下检测到它,而在另一种情况下则没有。 gcc
有 -Wuninitialized -Winit-self
选项,但即使使用这些选项,它仍然无法检测到第一种情况。无论如何,问题仍然存在(并且相同)。
关于c - block 和循环之间到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63408436/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!