我正在使用遺留代碼,並且在查看GW Basic的教程和手冊幾天後仍無法解釋的東西:變量(P9%)用於在線530上的比較(IF P9%<> 0),然後代碼在線860上達到它的定義。它不是一個複雜的代碼段,總共只有1200行,所以我相信我沒有錯過任何轉到或gosub或比這個比較早860的任何東西。GW基本的默認變量初始化
我很好奇它是如何影響程序運行的。我的大部分經驗都是用C++編寫的,如果它做了一個未賦值的變量,可能會包含任何合適的東西,但我不知道在Basic中給變量賦予了什麼樣的默認賦值。
我正在使用遺留代碼,並且在查看GW Basic的教程和手冊幾天後仍無法解釋的東西:變量(P9%)用於在線530上的比較(IF P9%<> 0),然後代碼在線860上達到它的定義。它不是一個複雜的代碼段,總共只有1200行,所以我相信我沒有錯過任何轉到或gosub或比這個比較早860的任何東西。GW基本的默認變量初始化
我很好奇它是如何影響程序運行的。我的大部分經驗都是用C++編寫的,如果它做了一個未賦值的變量,可能會包含任何合適的東西,但我不知道在Basic中給變量賦予了什麼樣的默認賦值。
從gwbasic寫了很多年了!
如果我沒記錯的話,在這種情況下變量被分配一個零值。 Gwbasic(和Qbasic我認爲)在首次引用時爲所有變量賦予一個默認值,通常這是一個字符串變量的零或空字符串。
有趣的是,當使用DIM語句創建一個數組時,數組中的所有項目也以這種方式初始化。
即使有了這個機制,通常最好初始化一個變量,以清楚發生了什麼。
爲gwbasic編寫的時代的許多程序員儘可能多地儘量減少程序指令使用的內存量,以便他們對其他內容有更多的使用。所以這可能是它未被初始化的原因。