c – 不期望结果的struct sizeof

c – 不期望结果的struct sizeof,第1张

概述我有一个如此定义的结构: typedef struct _CONFIGURATION_DATA { BYTE configurationIndicator; ULONG32 baudRate; BYTE stopBits; BYTE parity; BYTE wordLength; BYTE flowControl; BYTE padding @H_502_6@ 我有一个如此定义的结构:

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处理速度更快,代码更小.

总结

以上是内存溢出为你收集整理的c – 不期望结果的struct sizeof全部内容,希望文章能够帮你解决c – 不期望结果的struct sizeof所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存