日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

寫好C語(yǔ)言,漂亮的宏定義很重要!

 新用戶0118F7lQ 2025-05-04

    使用宏定義可以防止出錯(cuò),提高可移植性,可讀性,方便性等。

    下面列舉了一些成熟軟件中常用的宏定義。

重新定義一些類型,防止由于各種平臺(tái)和編譯器的不同,而產(chǎn)生的類型字節(jié)數(shù)差異,方便移植:

typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int uint32; /* Unsigned 32 bit value */typedef unsigned short uint16; /* Unsigned 16 bit value */typedef unsigned char uint8; /* Unsigned 8 bit value */typedef signed long int int32; /* Signed 32 bit value */typedef signed short int16; /* Signed 16 bit value */typedef signed char int8; /* Signed 8 bit value */

求最大值和最小值:

#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )

得到一個(gè)field在結(jié)構(gòu)體(struct)中的偏移量:

#define FPOS( type, field ) \/*lint -e545 */ ( (dword) &(( type *) 0)-> field ) /*lint +e545 */


得到一個(gè)結(jié)構(gòu)體中field所占用的字節(jié)數(shù):

#define FSIZ( type, field ) sizeof( ((type *) 0)->field )

按照LSB格式把兩個(gè)字節(jié)轉(zhuǎn)化為一個(gè)Word:

1#define FLIPW( ray ) ( (((word) (ray)[0]) * 256) + (ray)[1] )


按照LSB格式把一個(gè)Word轉(zhuǎn)化為兩個(gè)字節(jié):

#define FLOPW( ray, val ) \(ray)[0] = ((val) / 256); \(ray)[1] = ((val) & 0xFF)

得到一個(gè)變量的地址(word寬度):

#define B_PTRvar ) ( (byte *) (void *) &(var) )#define W_PTRvar ) ( (word *) (void *) &(var) )

得到一個(gè)字的高位和低位字節(jié):

#define WORD_LO(xxx) ((byte) ((word)(xxx) & 255))#define WORD_HI(xxx) ((byte) ((word)(xxx) >> 8))


將一個(gè)字母轉(zhuǎn)換為大寫:

#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )


判斷字符是不是10進(jìn)制的數(shù)字:

#define DECCHK( c ) ((c) >= '0' && (c) <= '9')

判斷字符是不是16進(jìn)制的數(shù)字:

#define HEXCHK( c ) ( ((c) >= '0' && (c) <= '9') ||\((c) >= 'A' && (c) <= 'F') ||\((c) >= 'a' && (c) <= 'f') )


防止一個(gè)頭文件被重復(fù)包含:

#ifndef COMDEF_H#define COMDEF_H//頭文件內(nèi)容#endif


防止溢出的一個(gè)方法:

#define INC_SAT( val ) (val = ((val)+1 > (val)) ? (val)+1 : (val))


返回?cái)?shù)組元素的個(gè)數(shù):

圖片

#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多