程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> vs2012-關於Effective C++的條款2盡量以const,enum,inline替換#define

vs2012-關於Effective C++的條款2盡量以const,enum,inline替換#define

編輯:編程解疑
關於Effective C++的條款2盡量以const,enum,inline替換#define

最近在看這本書,感覺有很多不理解。可能是動手項目比較少,我想問問:書上說
#define ASPECT_RATIO 1.653
因為#define是預處理器處理的,在編譯前會進行替換。所以當ASPECT_RATIO出錯的時候,編譯報告的是1.653的錯誤,因為ASPECT_RATIO是沒有進去符號表的,在進行排錯會浪費時間。因此用const double AspectRatio=1.653替換掉那個宏。而且這樣內存裡只會存在一個這樣的變量,比較節省內存。
在平時使用VS的時候,我遇到的情況,除了指針問題可能難發現,其他情況報錯編譯器不都會直接定義到哪一行出了錯麼,這樣一看便知道是什麼問題。。圖片說明可能樓主這方面經驗比較少,麻煩知道的解釋下。
順便問下,條款三的盡量使用const裡面,把一個函數的反回值設為了const,這種設置一般用在運算符設置裡面吧。是麼?謝謝解答

最佳回答:


一個函數應該“嚴以律己,寬以待人”,嚴以律己就是盡可能少地修改傳入的參數或者全局變量,盡可能做好自身參數和結果的檢查。寬以待人是說,要對外部條件盡可能寬容,盡量不要假設外部程序的狀態。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved