C/C++ 中的詞法分析中的理解。如,/、=、和*只有一個符號,稱之為單字符的符號,那麼對於多個字符數的符號,比如,/*、和 ==包含了兩個的單字符,所以稱之為多字符符號。
所以,在編譯器錄入字符的時候,每錄入一個字符,比如 / 之後就會做出判斷是否已經錄入完畢,如果 後面還有 *,就會合在一起組成一個多字符,重新判斷是否已經錄入完畢;否則 是當作錄入一個字符進行處理。
編譯器錄入字符的原則是:大嘴原則,也就是,盡可能錄入更多字符。編譯器錄入字符的時候,從左到右進行一個接一個地錄入字符,如果這個字符可以組成一個符號,那麼繼續錄入時其他的符號,再判斷是否可以組成一個多字符;如果可以就繼續錄入,重復上面的過程。這個方法曾只為大嘴原則。
1、代碼理解:
Technorati 標簽: C/C++,大嘴原則,詞法分析,單個字符,多個字符a --- b可以理解為
a -- - b
但絕對不是:
a- --b
y = x/*p 的時候,就會出現報錯的現象,
因為錄入字符的時候,會將 /* 錄入進去,大嘴原則發揮了效果,編譯器會認為是 注釋的符號,所擁有就會報錯,
解決的辦法:
y = x/ *p 或者 y = x/(*p)