当前位置: 首页 > news >正文

seo网站结构优化外贸网站如何做免费推广

seo网站结构优化,外贸网站如何做免费推广,大丰网站建设找哪家好,网站权重值在较长时间内是一定的页面优化揭秘C语言结构体:通往内存对齐的视觉之旅 引言 在C语言的编程旅程中,结构体(structs)是一个关键而强大的概念。结构体不仅允许我们组织和存储不同类型的数据,而且通过深入了解内存对齐,我们可以更好地优化…

揭秘C语言结构体:通往内存对齐的视觉之旅

引言

在C语言的编程旅程中,结构体(structs)是一个关键而强大的概念。结构体不仅允许我们组织和存储不同类型的数据,而且通过深入了解内存对齐,我们可以更好地优化程序性能。在这篇博客文章中,我们将全面研究C语言结构体,包括定义、变量创建、初始化,以及内存对齐等方面。通过丰富的图示和深入的代码解读,我们将带你深入探索这一重要的数据结构。

1. 结构体类型的定义

首先,我们需要了解如何定义一个结构体类型。结构体类型是用户自定义的数据类型,通过struct关键字实现。下面是一个简单的例子:

struct Stu 
{char name[50];int age;float height;
};

Stu结构体包含了姓名、年龄和身高三个成员。

2. 结构体变量的创建与初始化

结构体类型定义后,我们可以创建相应的结构体变量,并进行初始化。以下是一个例子:

#include <stdio.h>
struct Stu
{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号
};
int main()
{//按照结构体成员的顺序初始化struct Stu s = { "张三", 20, "男", "20230818001" };printf("name: %s\n", s.name);printf("age : %d\n", s.age);printf("sex : %s\n", s.sex);printf("id : %s\n", s.id);//按照指定的顺序初始化struct Stu s2 = { .age = 18, .name = "lisi", .id = "20230818002", .sex = "⼥printf("name: %s\n", s2.name);printf("age : %d\n", s2.age);printf("sex : %s\n", s2.sex);printf("id : %s\n", s2.id);return 0;
}

3.内存对齐:程序性能的守护者

内存对齐对于提高程序性能至关重要。它确保结构体中的每个成员从其大小的倍数地址开始存储,以最小化内存访问时间。

3.1 对齐规则

首先得掌握结构体的对齐规则:

  1. 结构体的第⼀个成员对齐到和结构体变量起始位置偏移量为0的地址处
  2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。
    对齐数 = 编译器默认的⼀个对⻬数 与 该成员变量大小的较小值。
    (VS 中默认的值为 8)
  3. 结构体总大小为最⼤对齐数(结构体中每个成员变量都有⼀个对齐数,所有对齐数中最大的 整数倍。
  4. 如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最大对齐数的整数倍处,结构 体的整体大小就是所有最⼤对齐数(含嵌套结构体中成员的对齐数)的整数倍。

3.2练习

typedef struct {int a;char b;short c;short d;
}AA_t;int main()
{printf("%d\n", sizeof(AA_t));return 0;
}

在这里插入图片描述

#include <stdio.h>
union Un
{short s[7];int n;
};
int main()
{printf("%d\n", sizeof(union Un));return 0;
}

在这里插入图片描述

4.实际案例:取消内存对齐

#include <stdio.h>struct PackedData {char a;int b;char c;
} __attribute__((packed));int main() {struct PackedData packedStruct;printf("PackedData的大小:%zu 字节\n", sizeof(packedStruct));return 0;
}

通过上面的代码,我们演示了如何通过__attribute__((packed))取消结构体的内存对齐,进而影响结构体的大小。

5.结论

通过这篇博客的全方位解读,你应该对C语言中的结构体有了更深入的了解。从定义到初始化,再到内存对齐,我们用图解和案例为你展现了结构体的方方面面。希望这篇文章能够帮助你更好地掌握C语言结构体,为你的编程之路增添亮丽的一笔。

http://www.yayakq.cn/news/925394/

相关文章:

  • 电子商务网站建设考试重点dede门户网站模板下载
  • 官方网站建设的方法有哪些方面wap网站制作模板
  • 抄袭的网站大连模板网站制作哪家专业
  • 网站开发合同管辖权异议做网站包含的技术
  • 医院招聘网站建设和维护人员2023年舆情分析报告
  • 做网站首页的表格的代码做视频的网站带模板下载
  • 自己的网站统计输入词装修公司营销型网站建设
  • 涿州市查建设局网站咸阳网站建设价格
  • 郑州网站建设 新浪博客灰色行业关键词优化
  • 包头网站建设平台广和淘宝做网站费用
  • 马鞍山集团网站建设芜湖市建设办网站
  • 最新网站开发价格wordpress会员积分邀请
  • 做阿里渠道的销售要有哪些网站制作图片文字
  • 网站绑定微信号怎么做一个网站
  • 网站制作公司徐州下载电商平台app
  • 网站开发前期调研免费建立网站的网站吗
  • 杭州网站建设icp备wordpress默认logo图片路径
  • 龙岗区布吉街道防控措施网站建设优化过程中的优化策略
  • 波莱网站开发WordPress考试
  • 网站下载视频的方法做网站就必须要开公司吗
  • 网站开发实战项目网页界面设计基础知识
  • 东莞容桂网站制作泰安人才网求职
  • 网站建设ui设计公司刚刚发生在昆明的大事
  • 广州网站设计服务商会员管理系统免费版
  • 网站开发维护任职要求html5做简单网站
  • 黄山建设网站公司用手机怎么制作动漫视频
  • 微网站建设第一步是进行什么的设置网站推广策略包括哪些内容
  • 建设外贸公司网站网站建设案例教程视频
  • 嘉兴网站制作公司广州模板网站建设价格
  • 辽阳网站开发公司产品vi设计都包括什么