1. 程式人生 > >語法和語義錯誤!

語法和語義錯誤!

語法和語義錯誤


程式設計是很困難的,而且有很多辦法犯錯誤。誤差一般可分為兩類:語法錯誤和語義錯誤(邏輯錯誤)。


當你寫一份宣告,根據C ++語言的語法無效時發生語法錯誤。這包括錯誤,如缺少分號,未宣告的變數,不匹配的括號或大括號,和未終止字串。例如,下面的程式中包含相當多的語法錯誤:

1
2
3
4
5
6
7
#include <iostream>; // preprocessor statements can't have a semicolon on the end
 
int main()
{
    std:cout < "Hi there; << x; // invalid operator (:), unterminated string (missing "), and undeclared variable
    return 0 // missing semicolon at end of statement
}

幸運的是,編譯器一般會趕上的語法錯誤,並生成警告或錯誤,讓您輕鬆識別並解決問題。然後,它再編譯,直到您擺脫所有的錯誤,只是早晚的問題。


一旦你的程式被編譯正確,得到它實際產生的結果(S)你想可能會非常棘手。發生語義錯誤時的宣告在語法上是有效的,但沒有做程式設計師的意圖。


有時,這些會導致你的程式崩潰,如除以零的情況下:
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a = 10;
    int b = 0;
    std::cout << a << " / " << b << " = " << a / b; // division by 0 is undefined
    return 0;
}