锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涓嬮潰鏄痶ypedef鐨勬渶緇忓父鐨勭敤娉?
typedef struct{
int a;
int b;
}MY_TYPE;
榪欓噷鎶婁竴涓湭鍛藉悕緇撴瀯鐩存帴鍙栦簡(jiǎn)涓涓彨MY_TYPE鐨勫埆鍚? 榪欐牱濡傛灉浣犳兂瀹氫箟緇撴瀯鐨勫疄渚嬬殑鏃跺欏氨鍙互榪欐牱:
MY_TYPE tmp;
榪欐槸typedef鐨勭涓縐嶇敤娉? 姣旇緝綆鍗? 灝辨槸 typedef 鍘熷彉閲忕被鍨?鍒悕
鐩鎬技鐨勪緥瀛?
typedef unsigned long DWORD; 鏃犵鍙烽暱鍨?br />
typedef void far *LPVOID; //void far *鏄師鍙橀噺綾誨瀷, 琛ㄧず涓涓獀oid 鍨嬫寚閽?far 鍦?2浣嶇郴緇熼噷闈㈠凡緇忔病鏈夋剰涔変簡(jiǎn))
絳夌瓑
typedef榪樻湁絎簩縐嶇敤娉? 鍙兘榪欑鐢ㄦ硶鍒濆鑰呮病鏈夋帴瑙﹁繃.
姣斿:
typedef int (*MYFUN)(int, int);
榪欑鐢ㄦ硶涓鑸敤鍦ㄧ粰鍑芥暟瀹氫箟鍒悕鐨勬椂鍊?(鍏跺疄璐ㄨ繕鏄拰涓婇潰鐨勭敤娉曚竴鏍風(fēng)殑)
涓婇潰鐨勪緥瀛愬畾涔塎YFUN 鏄竴涓嚱鏁版寚閽? 鍑芥暟綾誨瀷鏄甫涓や釜int 鍙傛暟, 榪斿洖涓涓猧nt
鍦ㄥ垎鏋愯繖縐嶅艦寮忕殑瀹氫箟鐨勬椂鍊欏彲浠ョ敤涓嬮潰鐨勬柟娉?
鍏堝幓鎺塼ypedef 鍜屽埆鍚? 鍓╀笅鐨勫氨鏄師鍙橀噺鐨勭被鍨?
姣斿涓婇潰鐨勪緥瀛?
鍘繪帀typedef鍜孧YFUN浠ュ悗灝卞墿:
int (*)(int, int)
璇諱簡(jiǎn)鎴戝墠闈竴璇鵑噷闈㈣璁虹殑 <<緇嗚濡備綍紜畾涓涓彉閲忕殑綾誨瀷>>鐨勬湅鍙嬪簲璇ュ緢瀹規(guī)槗灝卞緱鍑?guó)櫩欎釜绫诲瀷鎸囩殑鏃舵?
涓涓嚱鏁版寚閽? 鍑芥暟綾誨瀷鏄甫涓や釜int 鍙傛暟, 榪斿洖涓涓猧nt
]]>
鍐欏ソC璇█錛屾紓浜殑瀹忓畾涔夊緢閲嶈錛屼嬌鐢ㄥ畯瀹氫箟鍙互闃叉鍑洪敊錛屾彁楂樺彲縐繪鎬э紝鍙鎬э紝鏂逛究鎬?nbsp;絳夌瓑銆備笅闈㈠垪涓句竴浜涙垚鐔熻蔣浠朵腑甯哥敤寰楀畯瀹氫箟銆傘傘傘傘傘?
1錛岄槻姝竴涓ご鏂囦歡琚噸澶嶅寘鍚?
#ifndef COMDEF_H
#define COMDEF_H
//澶存枃浠跺唴瀹?
#endif
2錛岄噸鏂板畾涔変竴浜涚被鍨嬶紝闃叉鐢變簬鍚勭騫沖彴鍜岀紪璇戝櫒鐨勪笉鍚岋紝鑰屼駭鐢熺殑綾誨瀷瀛楄妭鏁板樊寮傦紝鏂逛究縐繪銆?
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 */
//涓嬮潰鐨勪笉寤鴻浣跨敤
typedef unsigned char byte; /* Unsigned 8 bit value type. */
typedef unsigned short word; /* Unsinged 16 bit value type. */
typedef unsigned long dword; /* Unsigned 32 bit value type. */
typedef unsigned char uint1; /* Unsigned 8 bit value type. */
typedef unsigned short uint2; /* Unsigned 16 bit value type. */
typedef unsigned long uint4; /* Unsigned 32 bit value type. */
typedef signed char int1; /* Signed 8 bit value type. */
typedef signed short int2; /* Signed 16 bit value type. */
typedef long int int4; /* Signed 32 bit value type. */
typedef signed long sint31; /* Signed 32 bit value */
typedef signed short sint15; /* Signed 16 bit value */
typedef signed char sint7; /* Signed 8 bit value */
3錛屽緱鍒版寚瀹氬湴鍧涓婄殑涓涓瓧鑺傛垨瀛?
#define MEM_B( x ) ( *( (byte *) (x) ) )
#define MEM_W( x ) ( *( (word *) (x) ) )
4錛屾眰鏈澶у煎拰鏈灝忓?
#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )
5錛屽緱鍒頒竴涓猣ield鍦ㄧ粨鏋勪綋(struct)涓殑鍋忕Щ閲?
#define FPOS( type, field ) \
/*lint -e545 */ ( (dword) &(( type *) 0)-> field ) /*lint +e545 */
6,寰楀埌涓涓粨鏋勪綋涓璮ield鎵鍗犵敤鐨勫瓧鑺傛暟
#define FSIZ( type, field ) sizeof( ((type *) 0)->field )
7錛屾寜鐓SB鏍煎紡鎶婁袱涓瓧鑺傝漿鍖栦負(fù)涓涓猈ord
#define FLIPW( ray ) ( (((word) (ray)[0]) * 256) + (ray)[1] )
8錛屾寜鐓SB鏍煎紡鎶婁竴涓猈ord杞寲涓轟袱涓瓧鑺?
#define FLOPW( ray, val ) \
(ray)[0] = ((val) / 256); \
(ray)[1] = ((val) & 0xFF)
9錛屽緱鍒頒竴涓彉閲忕殑鍦板潃錛坵ord瀹藉害錛?
#define B_PTR( var ) ( (byte *) (void *) &(var) )
#define W_PTR( var ) ( (word *) (void *) &(var) )
10錛屽緱鍒頒竴涓瓧鐨勯珮浣嶅拰浣庝綅瀛楄妭
#define WORD_LO(xxx) ((byte) ((word)(xxx) & 255))
#define WORD_HI(xxx) ((byte) ((word)(xxx) >> 8))
11錛岃繑鍥炰竴涓瘮X澶х殑鏈鎺ヨ繎鐨?鐨勫嶆暟
#define RND8( x ) ((((x) + 7) / 8 ) * 8 )
12錛屽皢涓涓瓧姣嶈漿鎹負(fù)澶у啓
#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )
13錛屽垽鏂瓧絎︽槸涓嶆槸10榪涘肩殑鏁板瓧
#define DECCHK( c ) ((c) >= '0' && (c) <= '9')
14錛屽垽鏂瓧絎︽槸涓嶆槸16榪涘肩殑鏁板瓧
#define HEXCHK( c ) ( ((c) >= '0' && (c) <= '9') ||\
((c) >= 'A' && (c) <= 'F') ||\
((c) >= 'a' && (c) <= 'f') )
15錛岄槻姝㈡孩鍑虹殑涓涓柟娉?
#define INC_SAT( val ) (val = ((val)+1 > (val)) ? (val)+1 : (val))
16錛岃繑鍥炴暟緇勫厓绱犵殑涓暟
#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )
17錛岃繑鍥炰竴涓棤絎﹀彿鏁皀灝劇殑鍊糓OD_BY_POWER_OF_TWO(X,n)=X%(2^n)
#define MOD_BY_POWER_OF_TWO( val, mod_by ) \
( (dword)(val) & (dword)((mod_by)-1) )
18錛屽浜嶪O絀洪棿鏄犲皠鍦ㄥ瓨鍌ㄧ┖闂寸殑緇撴瀯錛岃緭鍏ヨ緭鍑哄鐞?
#define inp(port) (*((volatile byte *) (port)))
#define inpw(port) (*((volatile word *) (port)))
#define inpdw(port) (*((volatile dword *)(port)))
#define outp(port, val) (*((volatile byte *) (port)) = ((byte) (val)))
#define outpw(port, val) (*((volatile word *) (port)) = ((word) (val)))
#define outpdw(port, val) (*((volatile dword *) (port)) = ((dword) (val)))
[2005-9-9娣誨姞]
19,浣跨敤涓浜涘畯璺熻釜璋冭瘯
A N S I鏍囧噯璇存槑浜?jiǎn)浜斾釜棰勫畾涔夌殑瀹忓悕銆傚畠浠槸錛?
_ L I N E _
_ F I L E _
_ D A T E _
_ T I M E _
_ S T D C _
濡傛灉緙栬瘧涓嶆槸鏍囧噯鐨勶紝鍒欏彲鑳戒粎鏀寔浠ヤ笂瀹忓悕涓殑鍑犱釜錛屾垨鏍規(guī)湰涓嶆敮鎸併傝浣忕紪璇戠▼搴?
涔熻榪樻彁渚涘叾瀹冮瀹氫箟鐨勫畯鍚嶃?
_ L I N E _鍙?qiáng)_ F I L E _瀹忔寚浠ゅ湪鏈夊叧# l i n e鐨勯儴鍒嗕腑宸茶璁猴紝榪欓噷璁ㄨ鍏朵綑鐨勫畯鍚嶃?
_ D AT E _瀹忔寚浠ゅ惈鏈夊艦寮忎負(fù)鏈?鏃?騫寸殑涓詫紝琛ㄧず婧愭枃浠惰緲昏瘧鍒頒唬鐮佹椂鐨勬棩鏈熴?
婧愪唬鐮佺炕璇戝埌鐩爣浠g爜鐨勬椂闂翠綔涓轟覆鍖呭惈鍦╛ T I M E _涓備覆褰㈠紡涓烘椂錛氬垎錛氱銆?
濡傛灉瀹炵幇鏄爣鍑嗙殑錛屽垯瀹廮 S T D C _鍚湁鍗佽繘鍒跺父閲?銆傚鏋滃畠鍚湁浠諱綍鍏跺畠鏁幫紝鍒欏疄鐜版槸
闈炴爣鍑嗙殑銆?
鍙互瀹氫箟瀹忥紝渚嬪:
褰撳畾涔変簡(jiǎn)_DEBUG錛岃緭鍑烘暟鎹俊鎭拰鎵鍦ㄦ枃浠舵墍鍦ㄨ
#ifdef _DEBUG
#define DEBUGMSG(msg,date) printf(msg);printf(“%d%d%d”,date,_LINE_,_FILE_)
#else
#define DEBUGMSG(msg,date)
#endif
20錛屽畯瀹氫箟闃叉浣跨敤鏄敊璇?
鐢ㄥ皬鎷彿鍖呭惈銆?
渚嬪錛?define ADD(a,b) 錛坅+b錛?
鐢╠o{}while(0)璇彞鍖呭惈澶氳鍙ラ槻姝㈤敊璇?
渚嬪錛?difne DO(a,b) a+b;\
a++;
搴旂敤鏃訛細(xì)if(….)
DO(a,b); //浜х敓閿欒
else
瑙e喅鏂規(guī)硶: #difne DO(a,b) do{a+b;\
a++;}while(0)
涓よ呯殑鍖哄埆鍦ㄤ簬:
濡傛灉鏂囦歡鍚嶇敤灝栨嫭鍙?lt;>鎷搗鏉?琛ㄧず鏂囦歡鏄竴涓爣鍑嗗ご鏂囦歡,鏌ユ壘榪囩▼浼?xì)棰勫畾涔夌洰褰?
濡傛灉鏂囦歡鍚嶇敤涓瀵瑰紩鍙?"鎷搗鏉?琛ㄦ槑鏂囦歡鏄敤鎴鋒彁渚涚殑澶存枃浠舵煡鎵捐鏂囦歡鏃跺皢浠庡綋鍓嶆枃浠剁洰褰曞紑濮?
鎵浠ョ敤鏍囧噯澶存枃浠舵椂鐢?lt;>
鐢ㄨ嚜瀹氫箟鐨勫ご鏂囦歡鏃剁敤""
鍏充簬gcc鐨勫弬鏁?-Idirname
-Idirname錛屽皢dirname鎵鎸囧嚭鐨勭洰褰曞姞鍏ュ埌紼嬪簭澶存枃浠剁洰褰曞垪琛ㄤ腑錛屾槸鍦ㄩ緙栬瘧榪囩▼涓嬌鐢ㄧ殑鍙傛暟銆侰紼嬪簭涓殑澶存枃浠跺寘鍚袱縐嶆儏鍐碘埗
A)#include
B)#include “myinc.h”
鍏朵腑錛孉綾諱嬌鐢ㄥ皷鎷彿(< >)錛孊綾諱嬌鐢ㄥ弻寮曞彿(“ ”)銆?br />
瀵逛簬A綾伙紝棰勫鐞嗙▼搴廲pp鍦ㄧ郴緇熼璁懼寘鍚枃浠剁洰褰?濡?usr/include)涓悳瀵葷浉搴旂殑鏂囦歡錛?br />
鑰屽浜嶣綾伙紝cpp鍦ㄥ綋鍓嶇洰褰曚腑鎼滃澶存枃浠訛紝榪欎釜閫夐」鐨勪綔鐢ㄦ槸鍛婅瘔cpp錛屽鏋滃湪褰撳墠鐩綍涓病鏈夋壘鍒伴渶瑕佺殑鏂囦歡錛屽氨鍒版寚瀹氱殑dirname鐩綍涓幓瀵繪壘銆傚湪紼嬪簭璁捐涓紝濡傛灉鎴戜滑闇瑕佺殑榪欑鍖呭惈鏂囦歡鍒嗗埆鍒嗗竷鍦ㄤ笉鍚岀殑鐩綍涓紝灝遍渶瑕侀愪釜浣跨敤-I閫夐」緇欏嚭鎼滅儲(chǔ)璺緞