關(guān)于CH372計算機(jī)接口的程序

// 計算機(jī)接口子程序源程序

#include "CH375DLL.H"

typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned long UINT32;

#ifndef MAX_DATA_SIZE #define MAX_DATA_SIZE 16 /* 單次命令處理的最大數(shù)據(jù)長度,有效值是1到56 */ #endif

#pragma pack( push, old_pack, 1 )

typedef struct _USB_DOWN_PACKET { /* 下傳的數(shù)據(jù)包結(jié)構(gòu),用于命令/寫數(shù)據(jù) */ UINT8 mCommand; /* 命令碼,見下面的定義 */ UINT8 mCommandNot; /* 命令碼的反碼,用于校驗下傳數(shù)據(jù)包 */ union { UINT8 mByte[4]; /* 通用參數(shù) */ UINT16 mWord[2]; /* 通用參數(shù),低字節(jié)在前,Little-Endian */ UINT32 mDword; /* 通用參數(shù),低字節(jié)在前,Little-Endian */ void *mAddress; /* 讀寫操作的起始地址,低字節(jié)在前,Little-Endian */ } u; UINT8 mLength; /* 下面的緩沖區(qū)的長度,讀寫操作的字節(jié)數(shù) */ UINT8 mBuffer[ MAX_DATA_SIZE ]; /* 數(shù)據(jù)緩沖區(qū) */ } USB_DOWN_PKT;

typedef struct _USB_UP_PACKET { /* 上傳的數(shù)據(jù)包結(jié)構(gòu),用于狀態(tài)/讀數(shù)據(jù) */ UINT8 mStatus; /* 狀態(tài)碼,見下面的定義 */ UINT8 mCommandNot; /* 命令碼的反碼,用于校驗上傳數(shù)據(jù)包 */ UINT8 mReserved[4]; UINT8 mLength; /* 下面的緩沖區(qū)的長度,讀操作的字節(jié)數(shù) */ UINT8 mBuffer[ MAX_DATA_SIZE ]; /* 數(shù)據(jù)緩沖區(qū) */ } USB_UP_PKT;

#pragma pack( pop, old_pack )

這程序的#pragma pack( push, old_pack, 1 )和#pragma pack( pop, old_pack )是怎么理解啊??這個pragma是自己定義的嗎?? [Emot]23[/Emot][Emot]23[/Emot][Emot]23[/Emot]

將在這宏之間的數(shù)據(jù)結(jié)構(gòu)成員強(qiáng)制成1個字節(jié)的對齊.在MSDN里有說明的.


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频