最近在看這本書,感覺有很多不理解。可能是動手項目比較少,我想問問:書上說
#define ASPECT_RATIO 1.653
因為#define是預處理器處理的,在編譯前會進行替換。所以當ASPECT_RATIO出錯的時候,編譯報告的是1.653的錯誤,因為ASPECT_RATIO是沒有進去符號表的,在進行排錯會浪費時間。因此用const double AspectRatio=1.653替換掉那個宏。而且這樣內存裡只會存在一個這樣的變量,比較節省內存。
在平時使用VS的時候,我遇到的情況,除了指針問題可能難發現,其他情況報錯編譯器不都會直接定義到哪一行出了錯麼,這樣一看便知道是什麼問題。。可能樓主這方面經驗比較少,麻煩知道的解釋下。
順便問下,條款三的盡量使用const裡面,把一個函數的反回值設為了const,這種設置一般用在運算符設置裡面吧。是麼?謝謝解答
一個函數應該“嚴以律己,寬以待人”,嚴以律己就是盡可能少地修改傳入的參數或者全局變量,盡可能做好自身參數和結果的檢查。寬以待人是說,要對外部條件盡可能寬容,盡量不要假設外部程序的狀態。