1. 常量定義
例如:
#define num 100
替換為
const
int num = 100;
const常量放在標頭檔案中,也不必擔心存在多個例項的問題,對於const修飾的變數,編譯器一般也會對其進行優化,不會出現多重定義的問題。
c語言中還有乙個特殊的常量定義:null。其一般的定義為 #define null 0,指標的內容卻是乙個整型,這不符合常理。所以在c++11中使用nullptr代替了null。
2. 函式定義
巨集只是在**中做字串替代展開,所以,用巨集定義的函式,實際上並沒有減少**的體積。
#define square(x) (x*x)
替換為
inline int square(int
value)
或者
template t>
inline t square(t& value)
3. 型別重定義#define unit_32 unsigned int
替換為
typedef
unsigned
int unit_32;
for迴圈替代解決方案
幾種遍歷方法中for執行最快,它沒有任何額外的函式呼叫棧和上下文。但在實際開發中我們要結合語義話 可讀性和程式效能,去選擇究竟使用哪種方案。下面來看for foreach map for.in for.of五種方法現場battle。for我是最早出現的一方遍歷語句,在座的各位需稱我一聲爺爺。我能滿足...
Swift中巨集 define的替代方案
我們在swift中已經沒有 define這種巨集定義了,那麼替代方案有哪些呢?1 let宣告常量 let is ios7 uidevice.currentdevice systemversion as nsstring doublevalue 7.0當然這種代替方案 只適用於一般的常量巨集定義,如果...
在nginx中x sendfile解決方案
例如下面的 12 3 4 5 6 7 8 9 10 11 12 13 使用者身份認證,若驗證失敗跳轉 authenticate file determine file 讀取檔案內容 content file get contents file 傳送合適的 http 頭 header header c...