㈠ C語言編程時出現的那個expected怎麼理解啊
C語言編程時編譯失敗後提示"expected"說明代碼缺乏必要內容導致語法錯誤。
expected表示預期,期望。在C語言編譯失敗後的提示信息中出現時表示編譯器無法通過編譯,且根據其錯誤給出合理的建議。
此處可以發現編譯器提示在花括弧 '{' 前缺乏某些符號,可以幫助我們修改源代碼,但需要注意的是編譯器的判斷可能出錯,該提示信息僅代表源代碼中存在錯誤即可能原因!目前暫時無法准確標注出出錯位置。
C語言程序開發流程如下:
(1)如何判斷是否可以通過編譯擴展閱讀
C語言出現的錯誤大致上可以分為兩種,一種是語法錯誤,另一種是邏輯錯誤。
大部分語法錯誤將無法通過編譯器編譯,編譯器會報錯並給出提示,設計程序時可以根據編譯器給出的提示檢查源代碼是否符合C語言的標准。
需要注意的是,不同版本的編譯器支持的標准可能存在差異,特別在移植代碼的過程中需要注意。
邏輯錯誤相對較難排除,主要是程序設計時由於邏輯不夠嚴謹導致的程序運行錯誤或無法正常運行。排除邏輯錯誤需要進行調試,檢查程序運行過程數據的變化和堆棧的變化,直到發現問題並解決問題。
㈡ C語言怎麼檢查對錯
用微軟的VC6.0就可以,點編譯,就是那個小嘆號,如果是語法錯誤,就會提示你錯誤,在下面的框里提示你哪行錯誤,編譯不會通過,即你的程序無法運行。
然而這是很簡單的,最難的是邏輯錯誤,即編譯可以通過,而運行結果是錯誤的,和你預想的不一樣,而這種錯誤很難查找,只能用分步式運行,一行一行跟著程序執行看結果和過程,才能檢測出來。通常程序員最難解決的錯誤就是這種邏輯錯誤。
㈢ gcc編譯,不提示錯誤信息,只告訴我編譯是否通過,怎麼設置
你可以把gcc的輸出重定向到nul,然後判斷gcc的退出狀態。一般來說,0表示編譯成功,1表示失敗了。
完成這一系列的工作,建議你可以使用腳本。
㈣ c語言為什麼編譯不通過
需要貼一下代碼,
編譯不通過一般的幾個問題需要去排查:
1)編譯環境是否正確?
可以簡單的寫個main函數測試下,如果能正常返回,說明編譯環境ok
2)語法錯誤
編譯器如果能幫你定位,那就去找對應錯誤的上下文,如果沒有,就需要一步一步排查,看哪裡的代碼有問題了。
㈤ 能正確通過編譯的程序一定是正確的程序嗎
不一定啊。而且大部分程序都是要反復調試才能正確。
編譯過的程序只是編譯器能夠識別,沒有語法錯誤。
㈥ 程序無法編譯通過問題,怎麼解決
關於程序無法通過編譯的問題,其錯誤類型肯定是有很多種的。根據我多年的編程調試經驗,可以給你提供以下幾種類型的錯誤,供你參考(以下以 C 語言編程經驗為例,其他編程語言的調試思路也是同理的)。
其中最容易調試的程序錯誤類型就是:
(1)、在編寫源程序過程中出現的各種語法錯誤。這種錯誤主要是由於剛剛開始學習編程,對編程語言的語句、以及語法結構還不是很清晰造成的,這種錯誤是最容易進行調試的,因為語法錯誤,編譯器連編譯都無法通過(通常會顯示出來具體是哪一行出現錯誤),這樣的話,你就可以直接到出錯的那一行進行修改源代碼了;
(2)、若是經過一段時間的上機練習,對學習編程的初始階段已經較為熟練了、且語法錯誤較少了之後,之後就會遇到更加復雜、並且難於調試的語義錯誤。例如在 C 語言中,對於如下代碼:
void main( )
{
int n ;
scanf("%d", &n) ;
if( n == 100 )
printf(" n is 100 !\n") ;
else
printf(" n is not 100 !\n") ;
}
但是若在邏輯判斷語句:if( n == 100) 中,如果誤將「==」(邏輯等於)寫成了「=」(賦值等於),那麼在 scanf("%d", &n) 語句中,無論你輸入的 n 等於多少,一旦執行 if 語句,那麼 將 100 這個數字賦給變數 n,則該邏輯表達式的值總是 1,程序的運行結果必定總是輸出:n is 100。
而該程序的實際思路是:從鍵盤輸入一個整數,如果該整數等於 100,則輸出:n is 100 !如果輸入的整數不等於 100 的話,則輸出:n is not 100 !
像這樣的邏輯錯誤(在對 C 語言源程序進行編譯時,C 語言編譯器是檢查不出來的),如果沒有豐富的程序調試經驗,程序調試起來就是非常困難的。
(3)、其它的錯誤類型例如:數組越界、非法使用了未初始化的指針變數、未對指針變數進行有效的內存分配,就向那一塊存儲區域讀寫數據,等等。這些都會造成程序崩潰,嚴重的就會造成操作系統崩潰。