2017-02-24 53 views
0

我最近遇到了一个程序问题,我在那里比较了一个我没有初始化的变量。我终于明白了(在别人的帮助下!),但这引发了另一个问题。是编译器设置的未初始化变量的值,还是完全由其他值设置的值。当我在Linux中运行该程序时,该变量被设置为-127xxxxxx,但是,在Windows中它被设置为0.是由编译器或什么设置的未初始化变量的值?

所以基本上我的问题是什么设置变量的值没有值。这是一个C程序。

操作系统:Windows 10和Linux操作系统Ubuntu 14.04.5 LTS

+0

@KyleStrand谢谢你,这篇文章是一个类似的不同的问题,但其中一个答案在那个帖子回答了我的问题。 – Hunter

回答

1

在C中,未初始化的块范围内的变量被说成具有不确定的值。如果你写的是试图读取一个不确定的值,然后,根据a few details有关系统和代码的其余部分的代码,或者:

  • undefined behaviour立即发生,或
  • 读生产可能会出现一定的价值无理由更改,如果该值(或从中派生的值)传递给库函数,将导致未定义的行为。
相关问题