C語言 define 關鍵字

2021-09-01 02:19:34 字數 1103 閱讀 1659

1)取出兩個數值中的最小值

#define min(a,b) (((a)>(b))? (b):(a))

2)用巨集定義實現乙個32 int型別變數 取絕對值

#define  abs(n) (((unsigned int)n>>31 == 0x1) ? (-n):(n))

#define abs2(n)  ((n ^ (n >> 31)) - (n >> 31))

3)在上面定義的基礎上,進而可以實現不用大於號的方式實現比較兩個變數的大小

#define min(a,b) (abs((a)-(b)) == ((a)-(b)))? (b):(a)

4)重複包含標頭檔案的問題

#ifndefined  __abc_file_h__

#define __abc_file_h__

//標頭檔案內容

#endif

5)用預處理指令#define 宣告乙個常數,用以表明1年中有多少秒(忽略閏年問題)

#define seconds_per_year (60 * 60 * 24 * 365)ul

6)關於define # 的用法 (define 與字串處理)

eg.#define sample(***) \

do                            \

while(0)

1、輔助定義複雜的巨集,避免引用的時候出錯 //是否可以用大括號代替 {}?

2、優化替代goto語句,實現對程式流程更好的控制

3、避免空巨集引起的warning //是否可以用大括號代替 {}?

4、定義乙個單獨的函式塊來實現複雜的操作 //是否可以用大括號代替 {}?

int foo()

dosomething...;

if(error)

dosomething...;

end:

free(ptr);

return 0;

}int foo()

dosomething...;

if(error)

dosomething...;

}while(0);

free(ptr);

return 0;

}

c語言32個關鍵字 define

1 防止乙個標頭檔案被重複包含 當我們的程式很大很大時,比如超過20000行時,我們很可能沒有辦法對所有的檔案都有清楚的了解,特別是.h 檔案,那麼我們怎麼做才能避免include時重複包含呢 答案就是 define 如下 a.h b.h c.h 三個檔案 a.h 內容 int variable a...

C語言關鍵字

c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...

C語言關鍵字

關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...