加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 不期望结果的struct sizeof

发布时间:2020-12-16 10:42:09 所属栏目:百科 来源:网络整理
导读:我有一个如此定义的结构: typedef struct _CONFIGURATION_DATA { BYTE configurationIndicator; ULONG32 baudRate; BYTE stopBits; BYTE parity; BYTE wordLength; BYTE flowControl; BYTE padding;} CONFIGURATION_DATA; 现在,通过我的计算,该结构长度为10
我有一个如此定义的结构:

typedef struct _CONFIGURATION_DATA {
    BYTE configurationIndicator;
    ULONG32 baudRate;
    BYTE stopBits;
    BYTE parity;
    BYTE wordLength;
    BYTE flowControl;
    BYTE padding;
} CONFIGURATION_DATA;

现在,通过我的计算,该结构长度为10个字节.但是,sizeof报告它长16个字节?谁知道为什么?

我正在使用Windows DDK中的构建工具进行编译.

解决方法

对准.

使用

#pragma pack(1)

……结构在这里……

#pragma pack()

我还建议重新排序,如果需要填充然后使用RESERVED字节,这样多字节整数类型将更好地对齐.这将使CPU处理速度更快,代码更小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读