- 论坛徽章:
- 0
|
恩,你那样子的我也写过,是没有问题的.我奇怪的是,当我把程序改成下面的,编译就能通过了.不会出错.
- typedef struct
- {
- unsigned short DataLength; // Number of bytes in TransData
- unsigned char *Data;
- } afMSGCommandFormat_t;
- typedef struct
- {
- unsigned short groupId;
- unsigned char SecurityUse;
- //afMSGCommandFormat_t cmd;
- unsigned short DataLength; //把这两个参数直接放到这个结构里
- unsigned char *Data;
- } afIncomingMSGPacket_t;
- #define UART_SEND_PC_PARAM(cmd,shortAddr,pkt)\
- uart_sendCmdMsgToPC(cmd, shortAddr, pkt->Data, pkt->DataLength)//把pkt->cmd.Data, pkt->cmd.DataLength用pkt->Data, pkt->DataLength代替
- void uart_sendCmdMsgToPC(unsigned short cmd,unsigned short shortAddr,unsigned char *Data,unsigned short len)
- {
- return;
- }
- void main(void)
- {
- afIncomingMSGPacket_t temPacket;
- afIncomingMSGPacket_t *pkt = &temPacket;
- UART_SEND_PC_PARAM(1,2,pkt);//错误出现在本语句中,如果直接用下面这句,就不会出现问题
- //uart_sendCmdMsgToPC(cmd, shortAddr, pkt->cmd.Data, pkt->cmd.DataLength);
- return;
- }
复制代码
想不明白到底是什么原因. |
|