c - 关于打包结构的大小
问题描述
typedef struct abc
{
double a;
int b;
char c;
int d;
}__attribute__((__packed__))abc_t;
int main()
{
//To do place code
abc_t tmp;
printf("The size is %d\n",sizeof(tmp));
return 0;
}
由于此结构的填充被禁用,我假设结构的大小将是结构变量大小的总和,即 8(d 的大小) + 4(b 的大小) + 1(c 的大小) + 4(d 的大小)等于 17,但是当我运行这个程序时,我得到的结果是 20。有人可以解释一下吗?
解决方案
推荐阅读
- jquery - jQuery 我有发票计算部分它不能正常工作
- java - 关于 onCreate 方法要点的解释
- asp.net - 使用 MSAL 进行 Microsoft Graph 身份验证(问题)
- xamarin - Mvvmcross 7.0.0:未找到使用 MvvmCross.Forms.Platforms.Android.Core
- c# - 直接在实体上识别实体框架中的延迟加载是否处于活动状态
- c# - RSA 加密性能 1024 位密钥与 2048
- openvpn - OpenVPN“仅将此连接用于其网络上的资源”不允许访问 VPN 托管站点(Ubuntu 20.04)
- android - Nativescript CLI 说 Android SDK 配置不正确,但我不知道如何修复它
- excel - 使用 vba 对日期进行排序
- javascript - 窗口事件侦听器未触发