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
相关推荐
- **节对齐** 和 **文件对齐**:决定了节在文件和内存中的对齐方式,影响内存占用和执行效率。 4. **节头表**:列出了文件中的所有节,每个节头包含节的名字、大小、在文件中的偏移量以及在内存中的虚拟地址等信息...
### gun c 与 ASCII 的重要区别:初探 Linux 内存管理 在深入探讨 Linux 内存管理前,我们先澄清一点,标题中的“gun c”实际上是指 GNU C 编译器(GCC),而非枪支(gun)或任何与之相关的主题。本文将围绕 GNU C ...
- 解释Nginx中用于内存对齐的宏,以优化内存访问速度。 **4. Nginx的内存池管理分析(a)** - 分析Nginx内存池管理机制的工作原理。 - 讨论如何有效地管理内存资源。 **5. Nginx的内存池管理分析(b)** - 继续探讨...
《弹球小游戏——C++游戏编程初探》 在计算机科学领域,游戏开发是一项充满挑战与乐趣的任务。本文将深入探讨一款由C++语言编写的弹球小游戏,它揭示了C++在游戏编程中的基本应用,以及开发者在初次尝试游戏编程时...
结构体的初始化可以使用不同的方式,需要注意的是,结构体的大小不仅取决于其成员的类型和数量,还可能因为对齐要求而增加填充字节。柔性数组成员是一种特殊的结构体成员,它可以使得结构体在内存中动态扩展。 ####...
介绍Nginx如何通过宏定义实现内存对齐,提高内存访问效率。 **15.4 Nginx的内存池管理分析(a)** 分析Nginx内存池管理机制,了解它是如何有效管理内存分配和释放的。 **15.5 Nginx的内存池管理分析(b)** 继续深入...
- **数据访问灵活性**:支持非对齐数据访问以及混合端数据访问,这不仅简化了数据共享和软件移植的过程,还有助于节省内存空间。 #### 五、商业产品案例 S3C6410处理器被广泛应用于各种商业产品中,包括但不限于: ...
- 字符串格式化中对齐和填充的控制。 - 复杂数据结构的格式化展示。 #### Python第17课:类型转换 - **知识点**: - 不同数据类型之间的转换。 - 类型转换函数如`int()`、`float()`、`str()`的用法。 - 转换...