添加额外字节后,用于引用执行时这些额外字节会发生什么。这些额外字节是空的还是包含哪些数据?
对此有任何帮助。感谢!!!
答案 0 :(得分:4)
ISO 9899:2011 6.2.6.1/6
当值存储在结构或联合类型的对象中时, 包括在成员对象中,对象表示的字节 与任何填充字节对应的值都是未指定的值。
这是未指定的行为,这意味着编译器可以在其中放置任何值,包括垃圾,只要它对所有结构一致。编译器不需要向用户记录它如何处理填充字节。
答案 1 :(得分:3)
它可能是任何东西。如果您使用calloc
分配了结构,那么它们最初将为零。但随后的操作可能会导致垃圾写入。
答案 2 :(得分:1)
填充是在结构中完成的,用于对齐其成员。这是由编译器完成的,以便进行优化,以便访问速度更快。 您无需担心结构中的差距。请继续推荐/取消参考您的结构成员。 一篇非常好的文章是http://www.geeksforgeeks.org/archives/9705