C中结构中的松弛字节

moh*_*hit 3 c struct structure

C中结构中的松弛字节是什么意思?

pax*_*blo 11

通常填充字节以确保数据正确对齐.例如:

struct x {
    int a;     // four bytes
    char b;    // one byte
               // three bytes slack
    int c;     // four bytes
} xx;
Run Code Online (Sandbox Code Playgroud)

将可能有松弛之间的字节数b,并c得到c正确的边界上对齐.

您可以通过查看sizeif(xx)给您的内容来检查这一点(在上述情况下为12,尽管它取决于实现).

如果某些体系结构必须使用(例如)未在四字节边界上对齐的四字节值,则它们会运行得更慢.有的架构将不会允许,在所有的,而不是产生一个例外.