最近在做配电终端的一个项目 要用到许多struct结构,需要从eeprom中读入数据 ,struct结构的取地址和赋值问题没有搞清楚,故自己检测了一下:
程序如下:
#pragma pack(1)
#define SRTermParaType struct strSRTermParaType
struct strSRTermParaType
{
struct
{
char D1;
char D2[2];
}F1; //终端通信参数 F1
struct
{
char Ip1;
char Port1[2];
}F3; //主站IP地址和端口号 F3
};
void main()
{
SRTermParaType srt={0,4,1,2,1,8};
/*
srt.F1.D1={1};
srt.F1.D2={2,3};
srt.F3.Ip1={10,11};
srt.F3.Port1={19};
*/
printf("srt.F3=%d /n",srt.F3);
printf("srt.F1=%d /n",srt.F1);
printf("&srt.F3=%d /n",&srt.F3);
printf("&srt.F1=%d /n",&srt.F1);
printf("srt.F1.D1=%d /n",srt.F1.D1);
printf("&srt.F1=%d /n",&srt.F1);
printf("srt.F1.D2=%d /n",srt.F1.D2);
printf("srt.F1.D2[0]=%d/n",srt.F1.D2[0]);
}
结果如下:
srt.F3=524546
srt.F1=66560
&srt.F3=1245051
&srt.F1=1245048
srt.F1.D1=0
&srt.F1=1245048
srt.F1.D2=1245049
srt.F1.D2[0]=4
本文探讨了在C语言中使用struct结构时遇到的取地址和赋值问题。通过一个配电终端项目的实例,展示了如何定义struct结构,并进行初始化。代码示例解释了如何访问struct成员以及成员地址,揭示了struct变量、成员变量和数组在内存中的表示方式。

2万+

被折叠的 条评论
为什么被折叠?



