最近在看別人的sample code的時後,又發現有趣的程式
常常看到#if 和#endif,後來發現這都和#deifne 一樣,都是macro的寫法。
寫個簡單的範例
#define macro1
#if defined macro1
#define w1 2
#elif defined macro2
#define w1 3
#elif defined macro3
#define w1 4
#else
#define w1 5
#endif
這樣w1 為2,
如果在#define macro2的話
那w1就會為3。
只要在一開始的#define 改變不同的定義,這樣w1的值就會不同。
利用macro的好處在於我只要定義不同的功能,而且可以不需要將原本的程式註解掉,這樣程式也可以不用一直刪來刪去的,真的是太方便了。而且不會浪費ROM size 或是RAM size。
巨集為文章取代處理程序,也就是將有定義到的地方用新的文字取代。巨集處理完後才會真正去編譯。所以巨集內容常常會有括號起來,就是怕和前文會有順序干擾的問題。所以看到別人的巨集有括號,不要隨意去除。
回覆刪除[版主回覆08/03/2009 08:17:08]難怪我在看別人的sample code的時後,常常會看到括號。
謝謝您又讓我學了一課了。