Q
Here is my program
the head is
typedef struct struct_CN
{
unsigned char magicA;
unsigned char magicB;
unsigned short msgLen;
} CN;
typedef struct struct_CcDev
{
CN Header;
unsigned short action;
} CcDev;
CcDev CcDev_packet;
Evaluate_CN(CN *CN_p)
{
strcpy(&CN_p->magicA,"A");
printf("magicA is %s\n", &CN_p->magicA);
strcpy(&CN_p->magicB,"H");
printf("magicB is %s\n", &CN_p->magicB);
CN_p->msgLen = 1234;
printf("msgLen is %d\n", &CN_p->msgLen);
}
void Evaluate_CcDevRegMsg()
{
Evaluate_CN(&CcDev_packet.msgHeader);
printf("CcDev_packet.CN.magicA = %s\n",&CcDev_packet.Header.magicA);
printf("CcDev_packet.CN.magicB = %s\n",&CcDev_packet.Header.magicB);
printf("CcDev_packet.CN.msgLen = %d\n",&CcDev_packet.Header.msgLen);
}
When I use gcc to compile
gcc file.c
I got the output as
magicA is A
magicB is H
msgLen = 1234
CcDev_packet.CN.magicA = AH?
CcDev_packet.CN.magicB = H?
CcDev_packet.CN.msgLen = 134519298
Is there anything wrong with it?
Thanks a lot!
the head is
typedef struct struct_CN
{
unsigned char magicA;
unsigned char magicB;
unsigned short msgLen;
} CN;
typedef struct struct_CcDev
{
CN Header;
unsigned short action;
} CcDev;
CcDev CcDev_packet;
Evaluate_CN(CN *CN_p)
{
strcpy(&CN_p->magicA,"A");
printf("magicA is %s\n", &CN_p->magicA);
strcpy(&CN_p->magicB,"H");
printf("magicB is %s\n", &CN_p->magicB);
CN_p->msgLen = 1234;
printf("msgLen is %d\n", &CN_p->msgLen);
}
void Evaluate_CcDevRegMsg()
{
Evaluate_CN(&CcDev_packet.msgHeader);
printf("CcDev_packet.CN.magicA = %s\n",&CcDev_packet.Header.magicA);
printf("CcDev_packet.CN.magicB = %s\n",&CcDev_packet.Header.magicB);
printf("CcDev_packet.CN.msgLen = %d\n",&CcDev_packet.Header.msgLen);
}
When I use gcc to compile
gcc file.c
I got the output as
magicA is A
magicB is H
msgLen = 1234
CcDev_packet.CN.magicA = AH?
CcDev_packet.CN.magicB = H?
CcDev_packet.CN.msgLen = 134519298
Is there anything wrong with it?
Thanks a lot!