C语言结构体-大小,对齐
C语言中的结构体(struct)的定义
在C语言中,最常用的数据结构就是结构体了,结构体也是其它数据结构(比如链表等)的基础,结构体的使用非常简单。
比如,定义一个结构体:
struct TEST_STRUCT
{
char Name[20];
int Age;
char Sex;
};
在使用TEST_STRUCT的时候也很方便,如下代码所示:
void TestStruct()
{
struct TEST_STRUCT test;
test.Age = 20;
test.Sex = 'M';
strcpy(test.Name,"ZhangSan");
}
为什么要使用结构体呢?用单个变量来分别表示姓名,性别和年龄不行吗?其实是可以的,只是会比较麻烦一点,而且看起来不直观,而且结构体更重要的一点,具有面向对象的属性,虽然C语言中并不支持类这个概念,但是结构体确确实实具有了对象这个属性,比如TEST_STRUCT这个结构体,如果改名为Person,Person就比较容易理解了,有姓名,年龄,性别等。
既直观,又很容易扩充,比如以后程序需要,这个Person需要添加一个新的属性家庭地址,则只需要添加一项即可,如代码所示:
struct Person
{
char N
本文介绍了C语言中的结构体及其大小计算。结构体的大小受到数据对齐和填充的影响,以确保CPU高效执行。在32位系统中,通常采用4字节对齐。例如,当结构体包含不同大小的成员时,编译器会在适当位置添加填充以满足对齐要求,如在32位值后面填充以保持4字节边界。通过对结构体的深入理解,可以更好地掌握内存管理和优化技巧。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



