?? sizedef.h
字號:
/** #################################################
SizeDef.H
注意: 不同的C/C++ 編譯器內(nèi)建有不同的字長定義,使用不同的
編譯器時應(yīng)該注意要修改重定義字長大小。VC7.0 以下不支持
C99的long long數(shù)據(jù)類型,需要將其改為 __int64
描述: 使用類型定義重新定義統(tǒng)一的字長,與數(shù)據(jù)類型相關(guān)
的編譯程序中使用數(shù)據(jù)模型有以下:
LP64 -- 地址長度為64位,int 為32位,long為64位
ILP64 --地址長度為64位,int 為64位,long為64位
LLP64 --地址長度為64位,但int,long定義為32位
ILP32 --地址長度為32位,int,long為32位
LP32 --地址長度為32位,int為32位,沒有l(wèi)ong
重新定義為以下:
SZ_UBYTE? -- 1,2,4,8 代表分別占用多少字節(jié)的數(shù)據(jù)類型
SZ_BYTE? -- 1,2,4,8
SZ_UCHAR / SZ_CHAR -- 1 字節(jié)大小
SZ_USHORT / SZ_SHORT -- 2 字節(jié)大小
SZ_ULONG / SZ_LONG -- 4 字節(jié)大小
SZ_UPTR / SZ_PTR -- 地址字長大小
SZ_FLOAT -- 4 字節(jié)浮點型 IEEE 浮點數(shù)
SZ_DOUBLE -- 8字節(jié)精度小數(shù) IEEE 浮點數(shù) 4:192:9
####################################################
*/
#ifndef _SIZEDEF_H
#define _SIZEDEF_H 1
#define DATAMOD_ILP32 1
#ifdef DATAMOD_LP64
/** int 為32位,long = Pointer = 64位 */
typedef unsigned char SZ_UBYTE1;
typedef unsigned short SZ_UBYTE2;
typedef signed char SZ_BYTE1;
typedef signed short SZ_BYTE2;
typedef float SZ_FLOAT;
typedef double SZ_DOUBLE;
typedef unsigned char SZ_UCHAR;
typedef signed char SZ_CHAR;
typedef unsigned short SZ_USHORT;
typedef signed short SZ_SHORT;
typedef signed short SZ_WCHAR;
typedef unsigned short SZ_UWCHAR;
typedef unsigned int SZ_UBYTE4;
typedef signed int SZ_BYTE4;
typedef unsigned long SZ_UBYTE8;
typedef signed long SZ_BYTE8;
typedef unsigned int SZ_UINT;
typedef signed int SZ_INT;
typedef unsigned long SZ_ULONG;
typedef signed long SZ_LONG;
typedef unsigned long SZ_UPTR;
typedef signed long SZ_PTR;
typedef unsigned long SZ_URESULT;
typedef signed long SZ_RESULT;
typedef unsigned long SZ_UT;
typedef signed long SZ_T;
#elif DATAMOD_ILP64
/* int 是 64位, long 為 64位 */
typedef unsigned char SZ_UBYTE1;
typedef unsigned short SZ_UBYTE2;
typedef signed char SZ_BYTE1;
typedef signed short SZ_BYTE2;
typedef float SZ_FLOAT;
typedef double SZ_DOUBLE;
typedef unsigned char SZ_UCHAR;
typedef signed char SZ_CHAR;
typedef unsigned short SZ_USHORT;
typedef signed short SZ_SHORT;
typedef signed short SZ_WCHAR;
typedef unsigned short SZ_UWCHAR;
typedef unsigned int SZ_UBYTE4;
typedef signed int SZ_BYTE4;
typedef unsigned long SZ_UBYTE8;
typedef signed long SZ_BYTE8;
typedef unsigned int SZ_UINT;
typedef signed int SZ_INT;
typedef unsigned long SZ_ULONG;
typedef signed long SZ_LONG;
typedef unsigned long SZ_UPTR;
typedef signed long SZ_PTR;
typedef unsigned long SZ_UT;
typedef signed long SZ_T;
#elif DATAMOD_LLP64
/* int 為 32位,long 為 32位 */
typedef unsigned char SZ_UBYTE1;
typedef unsigned short SZ_UBYTE2;
typedef signed char SZ_BYTE1;
typedef signed short SZ_BYTE2;
typedef float SZ_FLOAT;
typedef double SZ_DOUBLE;
typedef unsigned char SZ_UCHAR;
typedef signed char SZ_CHAR;
typedef unsigned short SZ_USHORT;
typedef signed short SZ_SHORT;
typedef signed short SZ_WCHAR;
typedef unsigned short SZ_UWCHAR;
typedef unsigned int SZ_UBYTE4;
typedef signed int SZ_BYTE4;
typedef unsigned long long SZ_UBYTE8; /* 可能實現(xiàn)中將其定義更大 */
typedef signed long long SZ_BYTE8;
typedef unsigned int SZ_UINT;
typedef signed int SZ_INT;
typedef unsigned long long SZ_ULONG;
typedef signed long long SZ_LONG;
typedef unsigned long long SZ_UPTR;
typedef signed long long SZ_PTR;
typedef unsigned long long SZ_UT;
typedef signed long long SZ_T;
#elif DATAMOD_ILP32
/* int 為 32位, long 為32 位 */
typedef unsigned char SZ_UBYTE1;
typedef unsigned short SZ_UBYTE2;
typedef signed char SZ_BYTE1;
typedef signed short SZ_BYTE2;
typedef float SZ_FLOAT;
typedef double SZ_DOUBLE;
typedef unsigned char SZ_UCHAR;
typedef signed char SZ_CHAR;
typedef unsigned short SZ_USHORT;
typedef signed short SZ_SHORT;
typedef signed short SZ_WCHAR;
typedef unsigned short SZ_UWCHAR;
typedef unsigned int SZ_UBYTE4;
typedef signed int SZ_BYTE4;
typedef unsigned long long SZ_UBYTE8; /* 可能實現(xiàn)中將其定義更大 */
typedef signed long long SZ_BYTE8;
typedef unsigned int SZ_UINT;
typedef signed int SZ_INT;
typedef unsigned long long SZ_ULONG;
typedef signed long long SZ_LONG;
typedef unsigned int SZ_UPTR;
typedef signed int SZ_PTR;
typedef unsigned long SZ_UT;
typedef signed long SZ_T;
#else
/* DATAMOD_LP32 int 為 16位 */
typedef unsigned char SZ_UBYTE1;
typedef unsigned short SZ_UBYTE2;
typedef signed char SZ_BYTE1;
typedef signed short SZ_BYTE2;
typedef float SZ_FLOAT;
typedef double SZ_DOUBLE;
typedef unsigned char SZ_UCHAR;
typedef signed char SZ_CHAR;
typedef unsigned short SZ_USHORT;
typedef signed short SZ_SHORT;
typedef signed short SZ_WCHAR;
typedef unsigned short SZ_UWCHAR;
typedef unsigned long SZ_UBYTE4;
typedef signed long SZ_BYTE4;
typedef unsigned long long SZ_UBYTE8; /* 可能實現(xiàn)中將其定義更大 */
typedef signed long long int SZ_BYTE8;
typedef unsigned int SZ_UPTR;
typedef signed int SZ_PTR;
typedef unsigned long SZ_UINT;
typedef signed long SZ_INT;
typedef unsigned long long SZ_ULONG; /** 16位系統(tǒng)可能不會用到,也沒有這個內(nèi)建關(guān)鍵字 */
typedef signed long long SZ_LONG;
typedef unsigned int SZ_UT;
typedef signed int SZ_T;
#endif
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -