編譯不通過是什么原因 能解釋下編譯失敗的原因嗎?
能解釋下編譯失敗的原因嗎?編譯失敗的原因有很多。主要有以下幾種類型:(1)用戶編寫的源程序中存在語法錯誤。例如,在沒有定義變量的情況下進行引用。這種錯誤最簡單,也最容易被編譯器發現,所以會導致源程序編

能解釋下編譯失敗的原因嗎?
編譯失敗的原因有很多。主要有以下幾種類型:
(1)用戶編寫的源程序中存在語法錯誤。例如,在沒有定義變量的情況下進行引用。這種錯誤最簡單,也最容易被編譯器發現,所以會導致源程序編譯失敗;
(2)在用戶編寫的源程序中,引用沒有初始化的變量也會導致程序運行錯誤。比如用戶雖然定義了一個指向某個內存地址的指針變量,但是在使用之前并沒有對其進行初始化,給指針所指向的內存地址賦予了一個數值。這種情況編譯器在語法上是查不出來的,但是程序一旦運行,肯定會出錯。一般來說,在WINDOWS系統中,指向XXXX的內存是不能讀(或寫)的。如果是在UNIX/Linux系統下,會發生內核轉儲。
(3)數組越界。這種錯誤編譯器是檢測不到的,但是程序一旦運行,程序的運行結果可能就是一個隨機的結果。而不是用戶需要的結果。
所以從編譯的本質上來說,上述情況應該屬于編譯失敗的類型。由于編譯器無法防止這些錯誤的發生,使得程序運行時出現各種意想不到的運行結果。
編譯不出來是怎么回事?
編譯失敗的原因有很多。主要有以下幾種類型:
(1)用戶編寫的源程序中存在語法錯誤。例如,在沒有定義變量的情況下進行引用。這種錯誤最簡單,也最容易被編譯器發現,所以會導致源程序編譯失敗;
(2)在用戶編寫的源程序中,引用沒有初始化的變量也會導致程序運行錯誤。比如用戶雖然定義了一個指向某個內存地址的指針變量,但是在使用之前并沒有對其進行初始化,給指針所指向的內存地址賦予了一個數值。這種情況編譯器在語法上是查不出來的,但是程序一旦運行,肯定會出錯。一般來說,在WINDOWS系統中,指向XXXX的內存是不能讀(或寫)的。如果是在UNIX/Linux系統下,會發生內核轉儲。
(3)數組越界。這種錯誤編譯器是檢測不到的,但是程序一旦運行,程序的運行結果可能就是一個隨機的結果。而不是用戶需要的結果。
所以從編譯的本質上來說,上述情況應該屬于編譯失敗的類型。由于編譯器無法防止這些錯誤的發生,使得程序運行時出現各種意想不到的運行結果。