关于CH372计算机接口的程序

// 计算机接口子程序源程序

#include "CH375DLL.H"

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

#ifndef MAX_DATA_SIZE #define MAX_DATA_SIZE 16 /* 单次命令处理的最大数据长度,有效值是1到56 */ #endif

#pragma pack( push, old_pack, 1 )

typedef struct _USB_DOWN_PACKET { /* 下传的数据包结构,用于命令/写数据 */ UINT8 mCommand; /* 命令码,见下面的定义 */ UINT8 mCommandNot; /* 命令码的反码,用于校验下传数据包 */ union { UINT8 mByte[4]; /* 通用参数 */ UINT16 mWord[2]; /* 通用参数,低字节在前,Little-Endian */ UINT32 mDword; /* 通用参数,低字节在前,Little-Endian */ void *mAddress; /* 读写操作的起始地址,低字节在前,Little-Endian */ } u; UINT8 mLength; /* 下面的缓冲区的长度,读写操作的字节数 */ UINT8 mBuffer[ MAX_DATA_SIZE ]; /* 数据缓冲区 */ } USB_DOWN_PKT;

typedef struct _USB_UP_PACKET { /* 上传的数据包结构,用于状态/读数据 */ UINT8 mStatus; /* 状态码,见下面的定义 */ UINT8 mCommandNot; /* 命令码的反码,用于校验上传数据包 */ UINT8 mReserved[4]; UINT8 mLength; /* 下面的缓冲区的长度,读操作的字节数 */ UINT8 mBuffer[ MAX_DATA_SIZE ]; /* 数据缓冲区 */ } 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]

将在这宏之间的数据结构成员强制成1个字节的对齐.在MSDN里有说明的.


只有登录才能回复,可以选择微信账号登录