C語言常用宏定義的用法介紹
C語言中的宏定義是最常用的組成部分之一,他們在編程時有重要作用,正確應用可以減少很多代碼工作量,但是使用過渡,則會造成可讀性降低。下面小編給大家介紹C語言常用宏定義的用法介紹,歡迎閲讀!
C語言常用宏定義的用法介紹對於宏定義,需要注意以下説明:
(1)宏名一般用大寫;
(2)使用宏可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改;
(3)預處理是在編譯之前的處理,預處理不做語法檢查;
(4)宏定義末尾沒有分號;//不加;
(5)宏定義自然作用域為從定義開始一直到本文件結尾;
(6)可以用#undef命令提前終止宏定義的'自然作用域;
(7)宏定義可以嵌套;
(8)字符串“”中永遠不包含宏;
(9)宏定義不會分配內存,變量定義分配內存;
(10)宏定義不存在類型問題,它的參數也是無類型的,它僅僅是替換;
(11)宏定義可以帶參數,但需要注意的是每個參數是一個整體,在定義體中要注意括起來。
下面列舉了一些非常常用的宏定義用法:
常數定義
#define PI 3.1415926
防止重複包含
#ifndef __MY_HEAD_H__
#define __MY_HEAD_H__
...//這裏的內容可以保證不被重複包含
#endif
求最大最小值
#define GET_MAX(x, y) (((x) >= (y)) ? (x) : (y))
#define GET_MIN(x, y) (((x) <= (y)) ? (x) : (y))
得到結構體成員的偏移
#define FPOS(type, field) ((unsigned long)&((type *)0)->field)
拼接字節為字
#define MAKEWORD(h, l) (((h)<<8) | (l))
#define MAKEDWORD(h, l) (((h)<<16) | (l))
獲得高、地位字節或者字
#define WORD_LO(w) ((unsigned char)((w) & 0xFF))
#define WORD_HI(w) ((unsigned char)((w) >> 8))
#define DWORD_LO(dw) ((unsigned short)((dw) & 0xFFFF))
#define DWORD_HI(dw) ((unsigned short)((dw) >> 16))
將一個字母轉換為大寫
#define UPCASE(c) (((c) >= 'a' && (c) <= 'z') ? ((c) – 0x20) : (c))
判斷字符是不是10進值的數字
#define DECCHK(c) ((c) >= '0' && (c) <= '9')
判斷字符是不是16進值的數字
#define HEXCHK(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'))
返回數組元素的個數
#define ARR_SIZE(a) (sizeof((a))/sizeof(((a)[0])))
-
C語言程序改錯輔導
一個訊息從地球這一端到另一端只需.秒,而一個觀念從腦外傳到腦裏卻需要一年,三年甚至十五年。以下是小編為大家搜索整理的C語言程序改錯輔導,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!在考生文件夾下,給定程序MODI.C的功能是:求二維數組a...
-
2017計算機二級C語言精選練習題及答案
很多時候計算機等級證書是我們找工作的敲門磚,因此,計算機等級證書也是有一定的含金量的。以下是小編為大家整理的2017計算機二級C語言精選練習題及答案,希望對大家有幫助!(1)在不同網絡結點的對等層之間的通信需要下列哪一項協議?A)模塊接口B)對等層協議C)電信號...
-
C語言中的整數(short,int,long)
整數是編程中常用的一種數據,C語言使用int來定義整數(int是integer的簡寫)。歡迎大家閲讀!更多相關信息請關注相關欄目!現代操作系統中int一般佔用4個字節內存,共計32位(Bit)。如果不考慮正負數,當所有的位都為1時它的值最大,為232-1=4,294,967,295≈43億,這是一個很大的...
-
C語言編程中的聯合體union入門學習教程詳解
聯合體(union)在C語言中是一個特殊的數據類型,能夠存儲不同類型的數據在同一個內存位置。可以定義一個聯合體使用許多成員,但只有一個部件可以包含在任何時候給定的值。聯合體會提供使用相同的存儲器位置供多用途的有效方式。定義聯合體要定義聯合體,必須使用unio...