天天看點

《C語言接口與實作:建立可重用軟體的技術》一1.5 習題

本節書摘來自異步社群《c語言接口與實作:建立可重用軟體的技術》一書中的第1章,第1.5節,作者 傅道坤,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.1 在一個單詞結束于換行符時,getword在〈scan forward to a nonspace or eof 5〉代碼塊中将linenum加1,而不是在〈copy the word intobuf[0..size-1] 5〉代碼塊之後。解釋這樣做的原因。如果在本例中,linenum的加1操作是在〈copy the word into buf[0..size-1] 5〉代碼塊之後進行,會發生什麼情況?

1.2 當double在輸入中發現3個或更多相同單詞時會顯示什麼?修改double來改掉這個“特性”。

1.3 許多有經驗的c程式員會在strcpy的循環中加入一個顯式的比較操作:

顯式比較表明指派操作并非筆誤。一些c編譯器和相關工具,如gimpel software的pc-lint和lclint[evans,1996],在發現指派操作的結果用作條件表達式時會發出警告,因為這種用法是一個常見的錯誤來源。如果讀者有pc-lint或lclint,可以在一些“測試”過的程式上進行試驗。

繼續閱讀