天天看點

《C++入門經典(第5版•修訂版)》——2.6 問與答

本節書摘來自異步社群出版社《c++入門經典(第5版•修訂版)》一書中的第2章,第2.6節,作者:【美】jesse liberty , rogers cadenhead,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

c++入門經典(第5版•修訂版)

問:在c++程式中,字元#有何用途?

答: #符号指出目前代碼行是一個編譯指令:需要在程式編譯器處理的指令。編譯指令#include将指定檔案的所有内容插入到目前位置。編譯器看不到編譯指令,相反,結果就像是在指定位置輸入了檔案的全部内容一樣。

問:注釋類型//和/*有何不同?

答:以//打頭的注釋是單行注釋,到目前行行尾結束。以/打頭的注釋是多行注釋,到下一個/處才結束。函數結束不會導緻多行注釋結束,隻有添加了*/标志多行注釋結束,否則編譯器将報錯。

問:形參和實參有何不同?

答:這些術語與過程相關:調用函數時,給它提供一項或多項資料,函數将使用它們來完成其工作。形參是傳遞給函數的資訊,實參是函數收到的資訊。調用函數時,提供的是形參,而在函數内部,這些收到的形參将稱為實參。

問:什麼是kludge?

答:kludge是一種糟糕的解決方案,以後将被更好的解決方案替代。這個術語在海軍技師、計算機程式員和航空工程師中很流行,并傳播到了其他技術領域。

在計算機程式中,kludge是管用、但如果有足夠的時間可設計得更好的源代碼。kludge的壽命通常比預期的長。

阿波羅13号上的宇航員建立了史上最牛的kludge之一:使用膠布和襪子拼湊出一個過濾系統,用于過濾太空梭空氣中的二氧化碳,進而幫助他們回到地球。

1962年,在《datamation》雜志上發表的一篇文章中,jackson w. granholm首先使用了這個術語,并給它下了精彩的定義:将一系列不比對的零件拼湊起來,構成一個令人苦惱的整體。這個定義經受住了時間的考驗。

繼續閱讀