判断struct函数中变量所占字节
c语言吧
全部回复
仅看楼主
level 1
贴吧用户_JQZ24Q1
楼主
2024年04月25日 07点04分
1
level 10
witness-
没创结构体哪来的取地址
2024年04月25日 07点04分
0
Clannad
他在定义的时候创建了一个全局的结构变量s1
2024年04月25日 07点04分
witness-
@Clannad
原来是这样,我还以为有typedef
2024年04月25日 07点04分
level 10
witness-
看看报错,不同类型的指针变量想减是非法的
2024年04月25日 07点04分
4
witness-
你可以强转成void试试?
2024年04月25日 07点04分
Clannad
@witness-
void也不允许这样,想转只能转成char*试试
2024年04月25日 08点04分
witness-
@Clannad
对哦,没用过都忘了,谢谢你
2024年04月25日 08点04分
Clannad
@witness-
这种一般用不到
2024年04月25日 08点04分
level 1
贴吧用户_JQZ24Q1
楼主
那我应该怎么计算变量所占字节呢
2024年04月25日 10点04分
5
Lason•᷄ࡇ•᷅
强转为char*再减
2024年04月25日 10点04分
Kolkas
@贴吧用户_JQZ24Q1
你想要的是内存对齐后成员间地址的差值,又不是sizeof,变量本身的大小无所谓。char本身只有一个字节,指针相减结果等于地址的差值
2024年04月25日 14点04分
贴吧用户_JQZ24Q1
@Lason•᷄ࡇ•᷅
那样不会改变变量所占字节数吗
2024年04月25日 14点04分
贴吧用户_JQZ24Q1
@Kolkas
OK感谢
2024年04月25日 15点04分
吧务
level 14
GTA小鸡
计算结构体成员的长度
sizeof(((struct student*)0)->sex)
计算结构体成员的偏移量
offsetof(struct student, sex)
2024年04月25日 11点04分
6
贴吧用户_JQZ24Q1
学到了,谢谢
2024年04月25日 14点04分
1