Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么双字节对齐到8字节边界而不是4字节边界_C_Structure - Fatal编程技术网

C 为什么双字节对齐到8字节边界而不是4字节边界

C 为什么双字节对齐到8字节边界而不是4字节边界,c,structure,C,Structure,可能重复: d的大小是24。作为double,它与8字节边界对齐。有人能解释为什么它与8字节边界对齐,而不是4字节边界。我读到一些东西,所有元素都与该大小对齐吗?为什么实现定义了对齐 当对象类型有对齐要求时,该值小于或等于对象类型的大小。类型的对齐方式通常与类型的大小相同 当遵循IEEE-754时,double通常对应于大小为8字节的IEEE-754binary64类型。对齐由实现定义 当对象类型有对齐要求时,该值小于或等于对象类型的大小。类型的对齐方式通常与类型的大小相同 当遵循IEEE-7

可能重复:


d的大小是24。作为double,它与8字节边界对齐。有人能解释为什么它与8字节边界对齐,而不是4字节边界。我读到一些东西,所有元素都与该大小对齐吗?为什么

实现定义了对齐

当对象类型有对齐要求时,该值小于或等于对象类型的大小。类型的对齐方式通常与类型的大小相同


当遵循IEEE-754时,double通常对应于大小为8字节的
IEEE-754
binary64
类型。

对齐由实现定义

当对象类型有对齐要求时,该值小于或等于对象类型的大小。类型的对齐方式通常与类型的大小相同


当遵循IEEE-754时,
double
通常对应于大小为8字节的
IEEE-754
binary64
类型。

@SteveJessop感谢您的更正,我更新了我的answer@SteveJessop谢谢你的更正,我更新了我的答案
structure s{
    char a;
    double b;
    int c;
}d;