C 詞法分析器中的「貪心法」

2022-03-31 06:13:38 字數 419 閱讀 7001

編譯器將程式分解成符號的方法是,從左到右乙個字元乙個字元的讀入,如果該字元可能組成乙個字元,那麼再讀入下乙個字元,判斷已經讀入的兩個字元組成的字串是否可能是乙個符號的組成部分;如果可能,繼續讀入下乙個字元,重複上述判斷,直到讀入的字元組成的字串已不再可能組成乙個有意義的符號。

a---b這個表示式你要怎麼解釋?

a-- - b?還是a- --b?

這個要根據編譯器的詞法分析器來確定了;

寫個程式如下:

1 #include 2

void text(inta)3

vc6.0測試結果為  9  a:10

gcc測試結果為  9  a:9

不同編譯器採用的詞法分析器不同吧!為了增強程式的可移植性,建議在符號的兩邊用空格隔開,這應該是乙個良好的程式設計風格吧!

C詞法分析中的「貪心」法

本章 的是符號和組成符號的字元之間的關係,以及有關符號含義的一些常見的誤解。當我們閱讀乙個句子時,我們並不去考慮組成這個句子的單詞中單個字母的含義,而是把單詞作為乙個整體來理解。確實,字母本身並沒有什麼意義,我們總是將字母組成單詞,然後給單詞賦予一定的意義。對於c語言或其他語言編寫的程式,道理也是一...

C詞法分析中的「貪心」法

本章 的是符號和組成符號的字元之間的關係,以及有關符號含義的一些常見的誤解。當我們閱讀乙個句子時,我們並不去考慮組成這個句子的單詞中單個字母的含義,而是把單詞作為乙個整體來理解。確實,字母本身並沒有什麼意義,我們總是將字母組成單詞,然後給單詞賦予一定的意義。對於c語言或其他語言編寫的程式,道理也是一...

詞法分析 貪心法

c語言的某些符號,例如 和 只有乙個字元長,稱為單字元符號。而c語言中的其他符號,例如 和 以及識別符號,包括了多個字元,稱為多字元符號 當c編譯器讀入乙個字元 後又跟了乙個字元 那麼編譯器就必須做出判斷 是將其作為兩個分別的符號對待,還是合起來作為乙個符號對待。c語言對這類問題的規則可以歸納為 每...