这个是什么定义 ?
(WORD_BYTES){ARP_OPCODE_REQUEST_V} ??
我编译后出现错误:
CODE\MAIN.C(43): error C141: syntax error near '{'
在程序中是这样子的:
// check arp packet if match with avr ip let's send reply
if ( arp_packet_is_arp( rxtx_buffer, (WORD_BYTES){ARP_OPCODE_REQUEST_V}) )
{
arp_send_reply ( (BYTE*)&rxtx_buffer, (BYTE*)&client_mac );
return;
}
#define ARP_OPCODE_REQUEST_V0x0001
typedef union _WORD_BYTES
{
WORD word;
BYTE bytes[2];
struct
{
BYTE low;
BYTE high;
} byte;
struct
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
unsigned char bit8:1;
unsigned char bit9:1;
unsigned char bit10:1;
unsigned char bit11:1;
unsigned char bit12:1;
unsigned char bit13:1;
unsigned char bit14:1;
unsigned char bit15:1;
} bits;
} WORD_BYTES;
[解决办法]
if ( arp_packet_is_arp( rxtx_buffer, (WORD_BYTES){ARP_OPCODE_REQUEST_V}) )
{}改成():
if ( arp_packet_is_arp( rxtx_buffer, (WORD_BYTES)(ARP_OPCODE_REQUEST_V)) )
[解决办法]
没见过联合这么用的。。。。。还转换?
WORD_BYTES wb;
wb.word = ARP_OPCODE_REQUEST_V;
arp_packet_is_arp( rxtx_buffer, wb);