共用体所占内存大小问题

来源:4-1 Linux C公用体

一起沉默2626

2017-05-08 12:39

#include

union data{    int a;    char b;    char c[5];    int d; }; int main() {    union data dd = {10};    dd.b = 'a';    printf("___SIZE____ %lu\n", sizeof(dd)); } //这里我输出共用体的大小是8而不是5 是不是共用体内存大小也是要对齐的?
写回答 关注

2回答

  • 慕粉1474816063
    2017-05-08 16:25:31
    已采纳

    c++有一个对齐机制,申请的内存应该是某一数的整数倍,在这里是4,所以只能是8

    一起沉默26...

    非常感谢!

    2017-05-08 16:40:38

    共 1 条回复 >

  • 放弃治疗0
    2017-05-08 16:54:38

    是,这点和结构体类似。

Linux C语言结构体

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

118294 学习 · 162 问题

查看课程

相似问题