以下C語句中的令牌數量。在c語句中計算令牌
printf("i = %d, &i = %x", i, &i);
我認爲這裏有12個標記。但我的回答是錯誤的。
有人可以告訴我如何在上面的C語句中找到令牌嗎? PS:我知道一個令牌是編譯器不會分解爲組件元素的源程序文本。
以下C語句中的令牌數量。在c語句中計算令牌
printf("i = %d, &i = %x", i, &i);
我認爲這裏有12個標記。但我的回答是錯誤的。
有人可以告訴我如何在上面的C語句中找到令牌嗎? PS:我知道一個令牌是編譯器不會分解爲組件元素的源程序文本。
據我明白C代碼解析,所述令牌(10總數):
printf
(
"i = %d, &i = %x"
,
i
,
&
i
)
;
我不計空白,這是一般意義的和只用作其他標記之間的隔板,而且我不會將字符串文字分解成幾部分,因爲它是它自己的完整實體。
那麼這個語句的詞彙是什麼? –
@rafanadal你在說什麼? –
kk簡單地說是什麼詞位 –
這看起來非常像學校裏的功課什麼的,而是取決於是否空白罪狀:10或12(或13,如果空格數並沒有結束行)
'printf' '(' '"i = %d, &i = %x"' ',' 'i' ',' '&' 'i' ')' ';'
1 2 3 4 5 6 7 8 9 10
是完全10個標記。因爲用引號表示的字符可以被詞法分析器(LA)視爲單個標記,這是LA的屬性。
你在那裏看到的12個代幣是什麼? – Mat
我想說有10個''printf''(''「i =%d,&i =%x」'',''''',''&'''''''''' –
那麼,我計數十個令牌。在一定程度上,這取決於保存多少細節以及忽略多少細節。 (可能是您考慮空間標記?)雖然C標準需要對預處理器進行某種解釋,但這不需要影響解析器的其餘部分。 – delnan