語法和語義錯誤

2021-06-23 06:11:25 字數 730 閱讀 8634

編寫程式時,它幾乎是不可避免的,你會犯錯誤。在本節中,我們將談論的是錯誤的種類,以及它們是如何共同處理。

錯誤分為兩類:語法和語義錯誤。

語法錯誤

語法錯誤發生時,你寫了乙個宣告根據c + +語言語法無效。比如說呢。

if 5 > 6 then write "not equal";

語法錯誤幾乎總是被編譯器通常容易解決。因此,我們不要擔心太多。

語義錯誤

語義錯誤發生時,語句在語法上是有效的,但不做程式設計師想要的。比如說呢。

for (int ncount=0; ncount<=3; ncount++)

std::cout << ncount << " ";

程式設計師可能打算在這個語句列印0 1 2,但實際上它列印0 1 2 3。

語義錯誤不是由編譯器捕獲,並可以有任意數量的影響:他們可能不會出現在所有,使程式產生錯誤的輸出,引起不正常的行為,破壞資料,或導致程式崩潰。

它在很大程度上,我們關心的是語義錯誤。

語義錯誤可以用許多方式發生。最常見的一種語義錯誤是乙個邏輯錯誤。一種邏輯錯誤發生時,程式設計師錯誤**語句的邏輯。上述語句的例子是乙個邏輯錯誤。這裡是另乙個例子:

1

2if (x >= 5)

std::cout << "x is greater than 5";

語法和語義錯誤。

編寫程式時,它幾乎是不可避免的,你會犯錯誤。在本節中,我們將談論的是錯誤的種類,以及它們是如何共同處理。錯誤分為兩類 語法和語義錯誤。語法錯誤 語法錯誤發生時,你寫了乙個宣告根據c 語言語法無效。比如說呢。如果5 6然後寫 不平等 雖然這種說法是人類能夠理解,它是不是有效的基於c 的語法。正確的c ...

語法和語義錯誤

c 是標註 命令,進入 define功能引數是評估。如果第乙個引數評估左冰,這成為a呼叫to add 5,6 其中相同的11。如果右擊冰引數評估成為第一,這一使命to add 6,6 其中相同的12。注意,這是乙個問題,因為只有乙個引數對x有乙個側效應。有其他的案件是在c 的命令是不specify到...

rust 語法和語義 02 函式

函式 functions fn func name var1 u32,var2 u32 u32 使用關鍵字fn宣告乙個函式。fn func name 使用逗號,分割引數。且必須為引數宣告型別 type annotations。fn func name var1 u32,var2 i32 rust函式...