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