巨集定義與列舉

2021-06-11 16:36:45 字數 673 閱讀 6767

巨集定義是在預編譯時直接進行替換。而列舉值要在編譯時才能確定其值。所以任何在巨集定義中引用列舉值的操作都是錯誤的

在下面的**中,編譯輸出為:

test1=1, num1=111 

test2=2,num2=222

#include #include #define aaa	(1)

#define bbb (2)

#define ccc (3)

enum;

#define test1 bb

#define test2 bbb

#if (test1 == aa)

#define num1 111

#elif (test1 == bb)

#define num1 222

#else

#define num1 333

#endif

#if (test2 == aaa)

#define num2 111

#elif (test2 == bbb)

#define num2 222

#else

#define num2 333

#endif

int main(int argc,char *argv)

列舉 共用體 typedef與巨集定義

c 語言列舉型別 實際問題中,有些變數的取值被限制在一定範圍內。例如,乙個星期內只有七天,一年 只有十二個月,乙個班每週有六門課程等。c 語言提供了一種列舉 enum 型別,可以列出所有可能的取值。定義形式為 enum 變數名 這些值也稱為列舉元素。注意最後的分號 不能少。例如,列出乙個星期有幾天 ...

巨集定義與巨集替換

一.c c 語言中使用巨集的主要目的主要有 3 個 1.提高 的可讀性 把用到的常量定義成有意義的名字 2.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...

巨集定義與巨集替換

一.c c 語言中使用巨集的主要目的主要有 3 個 1.提高 的可讀性 把用到的常量定義成有意義的名字 2.無需函式呼叫,執行效率高 對於一些簡單的操作,無需呼叫函式,雖然程式設計是強調模組化,但是函式呼叫時,需要保護現場和恢復現場。這些都需要耗時。對於複雜的操作來講,這些耗時可以不計,但是對於簡單...