2017-02-24 48 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立即發生,或
  • 讀生產可能會出現一定的價值無理由更改,如果該值(或從中派生的值)傳遞給庫函數,將導致未定義的行爲。
相關問題