test.c
#include <stdio.h> struct stu{ char sex; int length; char name[10]; }; int main() { char name[10]; struct stu mystu; printf("size of char:%d\n", sizeof(char)); printf("size of int: %d\n", sizeof(int)); printf("size of char[10]:%d\n", sizeof(name)); printf("size of stu:%d\n", sizeof(mystu)); return 0; }
运行结果
[zxnms@/home/zxnms]$gcc -o test test.c
[zxnms@/home/zxnms]$./test
size of char:1
size of int: 4
size of char[10]:10
size of stu:20
[zxnms@/home/zxnms]$./test
size of char:1
size of int: 4
size of char[10]:10
size of stu:20
主意: 这里的stu不是应该返回1+4+10 = 15吗?
结果分析:
gcc默认按四个字节对齐
struct stu{ char sex; int length; char name[10]; };
sex 1个字节不足4个字节,补足4个字节
length 4个字节
name 8个字节,剩余两个字节:2 不足4个字节
总: 4 + 4 + 8 + 4 = 20
相关推荐
内存对齐,值得一读的内容, 内存对齐,值得一读的内容, 内存对齐,值得一读的内容, 内存对齐,值得一读的内容,
关于内存对齐的很详细的解析.内容有什么是内存对齐,为什么需要内存对齐,编译器对内存对齐的处理,栈内存对齐等,并附有验证代码.值得一看.
面试的时候内存对齐问的比较多,特从网上总结的面试题1.
sizeof(结构体)和内存对齐 sizeof(结构体)和内存对齐 sizeof(结构体)和内存对齐 sizeof(结构体)和内存对齐
c语言内存对齐问题的描述,数据在计算机内存中的存储
1. re: 内存对齐的规则以及作 2. re: 内存对齐的规则以及作 3. re: 内存对齐的规则以及作 4. re: 内存对齐的规则以及作 5. re: 内
详细解读内存对齐原则,通过实例让你完全掌握内存对齐。
本资源附有本人精心设计的内存对齐PPT以及示例程序,保证您看完本资源后完全掌握内存对齐问题。
C++内存对齐是个看似简单,但大家经常容易犯错的地方,本文详细总结了C++内存对齐,尤其是结构体对齐方面的知识,提出了自己理论总结,希望能对读者有参考价值!
该文档提供了详细解决结构体sizeof问题,从结构体内变量所占空间大小,默认内存对齐大小,强制内存对齐方法,变量在内存中布局的详细分析,语言言简意赅,绝无废话,为读者解决了大量寻找书籍的烦恼,读者可以花费几分钟的...
关于结构体的内存对齐关于结构体的内存对齐关于结构体的内存对齐
写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧.
c++ 内存对齐的完整文档 c++ 内存对齐的完整文档 c++ 内存对齐的完整文档
内存对齐,memory alignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。内存对齐...
C++ 内存对齐原则及作用 C++ 内存对齐原则及作用 C++ 内存对齐原则及作用
说明: 1.为什么需要内存对齐? 2.总结结构中内存对齐的规则
内存对齐问题,主要介绍了C语言结构体重内存对齐的问题。
介绍C/C++中内存对齐(字节对齐)的概念以及对齐规则。通过示例代码和图示帮助理解。
C++里的内存资源对齐规则,从更深刻的角度向大家展示了指针的密码