[智能控制】【第2 章 模糊控制的理论基础】

news2024/11/15 5:58:00

目录

第2章 模糊控制的理论基础

2.1 概述——模糊控制的提出

2.1 概述——模糊控制的特点

2.2   模糊集合

2.2.1 模糊集合

1 特征函数和隶属函数        

2  模糊集合的表示

例2.1

例2.2

2.2.2 模糊集合的运算

1  模糊集合的基本运算

(1)空集

(2)全集    

(3)等集

(4)补集

(5)子集

(6)并集

(7)交集

(8)模糊运算的基本性质

例2.3   

例2.4  

2  模糊算子

2.3  隶属函数

例2.5  

3 模糊系统的设计

4  隶属函数的确定方法

2.4  模糊关系及其运算

2.4.1 模糊矩阵

2.4.3 模糊矩阵的合成

例2.9 \

2.5  模糊推理

2.5.1 模糊语句

2.5.2 模糊推理

例2.10  

2.5.3 模糊关系方程


第2章 模糊控制的理论基础

2.1 概述——模糊控制的提出

    以往的各种传统控制方法均是建立在被控对象精确数学模型基础上的,然而,随着系统复杂程度的提高,将难以建立系统的精确数学模型。      

   在工程实践中,人们发现,一个复杂的控制系统可由一个操作人员凭着丰富的实践经验得到满意的控制效果。这说明,如果通过模拟人脑的思维方法设计控制器,可实现复杂系统的控制,由此产生了模糊控制。

2.1 概述——模糊控制的特点

   模糊控制是建立在人工经验基础之上的。对于一个熟练的操作人员,他往往凭借丰富的实践经验,采取适当的对策来巧妙地控制一个复杂过程。若能将这些熟练操作员的实践经验加以总结和描述,并用语言表达出来,就会得到一种定性的、不精确的控制规则。如果用模糊数学将其定量化就转化为模糊控制算法,形成模糊控制理论。

   模糊控制理论具有一些明显的特点:

(1)模糊控制不需要被控对象的数学模型。模糊控制是以人对被控对象的控制经验为依据而设计的控制器,故无需知道被控对象的数学模型。

 (2)模糊控制是一种反映人类智慧的智能控制方法。模糊控制采用人类思维中的模糊量,如“高”、“中”、“低”、“大”、“小”等,控制量由模糊推理导出。这些模糊量和模糊推理是人类智能活动的体现。

  (3)模糊控制易于被人们接受。模糊控制的核心是控制规则,模糊规则是用语言来表示的,如“今天气温高,则今天天气暖和”,易于被一般人所接受。

(4)构造容易。模糊控制规则易于软件实现。

(5)鲁棒性和适应性好。通过专家经验设计的模糊规则可以对复杂的对象进行有效的控制。

2.2   模糊集合

2.2.1 模糊集合

     对大多数应用系统而言,其主要且重要的信息来源有两种,即来自传感器的数据信息和来自专家的语言信息。数据信息常用0.5,2,3,3.5等数字来表示,而语言信息则用诸如“大”、“小”、“中等”、“非常小”等文字来表示。传统的工程设计方法只能用数据信息而无法使用语言信息,而人类解决问题时所使用的大量知识是经验性的,它们通常是用语言信息来描述。语言信息通常呈经验性,是模糊的。因此,如何描述模糊语言信息成为解决问题的关键。  

     模糊集合的概念是由美国加利福尼亚大学著名教授L.A.Zadeh于1965年首先提出来的。模糊集合的引入,可将人的判断、思维过程用比较简单的数学形式直接表达出来。模糊集理论为人类提供了能充分利用语言信息的有效工具。            

  模糊集合是模糊控制的数学基础。   

1 特征函数和隶属函数        

 在数学上经常用到集合的概念。 例如:集合A由4个离散值x1,x2,x3,x4组成。A={x1,x2,x3,x4} 例如:集合A由0到1之间的连续实数值组成。

 以上两个集合是完全不模糊的。对任意元素x,只有两种可能:属于A,不属于A。这种特性可以用特征函数 来描述:

 为了表示模糊概念,需要引入模糊集合和隶属函数的概念:

其中A称为模糊集合,由0,1及构成。

               表示元素x属于模糊集合A的程度,取值范围为[0,1],称      为x属于模糊集合A的隶属度。

2  模糊集合的表示

①  模糊集合A由离散元素构成,表示为:

② 模糊集合A由连续函数构成,各元素的隶属度就构成了隶属度函数(Membership Function),此时A表示为:

  在模糊集合的表达中,符号“/”、“+”和“∫”不代表数学意义上的除号、加号和积分,它们是模糊集合的一种表示方式,表示“构成”或“属于”。        模糊集合是以隶属函数来描述的,隶属度的概念是模糊集合理论的基石。

例2.1

设论域U={张三,李四,王五},评语为“学习好”。设三个人学习成绩总评分是张三得95分,李四得90分,王五得85分,三人都学习好,但又有差异。

若采用普通集合的观点,选取特征函数

 此时特征函数分别为    (张三)=1,    (李四)=1,          (王五)=1。这样就反映不出三者的差异。假若采用模糊子集的概念,选取[0,1]区间上的隶属度来表示它们属于“学习好”模糊子集A的程度,就能够反映出三人的差异。

 采用隶属函数 ,由三人的成绩可知三人“学习好”的隶属度为    (张三)=0.95,       (李四)=0.90,  (王五)=0.85。用“学习好”这一模糊子集A可表示为:

其含义为张三、李四、王五属于“学习好”的程度分别是0.95,0.90,0.85。

例2.2

以年龄为论域,取 。Zadeh给出了“年轻”的模糊集Y,其隶属函数为

通过Matlab仿真对上述隶属函数作图,隶属函数曲线如图3-1所示。

图2-1 “年轻”的隶属函数曲线

2.2.2 模糊集合的运算

1  模糊集合的基本运算

   由于模糊集是用隶书函数来表征的,因此两个子集之间的运算实际上就是逐点对隶属度作相应的运算。

(1)空集

模糊集合的空集为普通集,它的隶属度为0,即

(2)全集    

模糊集合的全集为普通集,它的隶属度为1,即

(3)等集

 两个模糊集A和B,若对所有元素u,它们的隶属函数相等,则A和B也相等。即

(4)补集

为A的补集,则

 例如,设A为“成绩好”的模糊集,某学生 属于“成绩好”的隶属度为:      

           

属于“成绩差”的隶属度为:

(5)子集

若B为A的子集,则

(6)并集

若C为A和B的并集,则

C=A∪B

一般地,

(7)交集

若C为A和B的交集,则

C=A∩B

一般地,

(8)模糊运算的基本性质

模糊集合除具有上述基本运算性质外,还具有下表所示的运算性质。

表2-1 运 算 法 则

1.幂等律 A∪A=A,A∩A=A

2.交换律 A∪B=B∪A,A∩B=B∩A

3.结合律 (A∪B)∪C=A∪(B∪C) (A∩B)∩C=A∩(B∩C)

4.吸收律 A∪(A∩B)=A A∩(A∪B)=A

5.分配律 A∪(B∩C)=(A∪B)∩(A∪C) A∩(B∪C)=(A∩B) ∪(A∩C)

6.复原律

7.对偶律

8.两极律

A∪E=E,A∩E=A

A∪Ф=A,A∩Ф=Ф

例2.3   

设   

求A∪B,A∩B

例2.4  

试证普通集合中的互补律在模糊集合中不成立,即      

证:设  

2  模糊算子

    模糊集合的逻辑运算实质上就是隶属函数的运算过程。采用隶属函数的取大(MAX)-取小(MIN)进行模糊集合的并、交逻辑运算是目前最常用的方法。但还有其它公式,这些公式统称为“模糊算子”。

设有模糊集合A、B和C,常用的模糊算子如下:

(1)交运算算子

设C=A∩B,有三种模糊算子:

 ①  模糊交算子

②  代数积算子

③ 有界积算子

(2)并运算算子

 设C=A∪B,有三种模糊算子:

①  模糊并算子

② 代数和算子

③ 有界和算子

(3)平衡算子

     当隶属函数取大、取小运算时,不可避免地要丢失部分信息,采用一种平衡算子,即“算子”可起到补偿作用。

设A和B经过平衡运算得到C,则

其中γ取值为[0,1]。

当γ=0时  ,相当于A∩B时的算子

当γ=1,,相当于A∪B时的代数和算子。

平衡算子目前已经应用于德国Inform公司研制的著名模糊控制软件Fuzzy-Tech中。

2.3  隶属函数

2 几种典型的隶属函数

   在Matlab中已经开发出了11种隶属函数,即双S形隶属函数(dsigmf)、联合高斯型隶属函数(gauss2mf)、高斯型隶属函数(gaussmf)、广义钟形隶属函数(gbellmf)、II型隶属函数(pimf)、双S形乘积隶属函数(psigmf)、S状隶属函数(smf)、S形隶属函数(sigmf)、梯形隶属函数(trapmf)、三角形隶属函数(trimf)、Z形隶属函数(zmf)

(2) 广义钟型隶属函数        

广义钟型隶属函数由三个参数a,b,c确定:

其中参数a和b通常为正,参数c用于确定曲线的中心。Matlab表示为

(3) S形隶属函数      

  S形函数sigmf(x,[a c])由参数a和c决定:

其中参数a的正负符号决定了S形隶属函数的开口朝左或朝右,用来表示“正大”或“负大”的概念。Matlab表示为

(4)梯形隶属函数

梯形曲线可由四个参数a,b,c,d确定:

其中参数a和d确定梯形的“脚”,而参数b和c确定梯形的“肩膀”。 Matlab表示为:

\

(5)三角形隶属函数

三角形曲线的形状由三个参数a,b,c确定:

其中参数a和c确定三角形的“脚”,而参数b确定三角形的“峰”。 Matlab表示为

(6)Z形隶属函数

这是基于样条函数的曲线,因其呈现Z形状而得名。参数a和b确定了曲线的形状。Matlab表示为

 有关隶属函数的MATLAB设计,见著作: 楼顺天,胡昌华,张伟,基于MATLAB的系统分析与设计-模糊系统,西安:西安电子科技大学出版社,2001

例2.5  

隶属函数的设计:针对上述描述的6种隶属函数进行设计。M为隶属函数的类型,其中M=1为高斯型隶属函数,M=2为广义钟形隶属函数,M=3为S形隶属函数,M=4为梯形隶属函数,M=5为三角形隶属函数,M=6为Z形隶属函数。如图所示。

图2-2   高斯型隶属函数(M=1)

图2-3  广义钟形隶属函数(M=2)

图2-4  S形隶属函数(M=3)

图2-5 梯形隶属函数(M=4)

图 2-6 三角形隶属函数(M=5)

图2-7  Z形隶属函数(M=6)

图2-8  三角形隶属函数曲线

3 模糊系统的设计

例1:设计一个三角形隶属函数,按[-3,3]范围七个等级,建立一个模糊系统,用来表示{负大,负中,负小,零,正小,正中,正大}。仿真结果如图3-8所示。

例2:设计评价一个学生成绩的隶属函数,在[0,100]之内按A、B、C、D、E分为五个等级,即{不及格,及格,中,良,优}。分别采用五个高斯型隶属函数来表示,建立一个模糊系统,仿真结果如图2-9所示。

图2-9 高斯型隶属函数曲线

4  隶属函数的确定方法

   隶属函数是模糊控制的应用基础。目前还没有成熟的方法来确定隶属函数,主要还停留在经验和实验的基础上。通常的方法是初步确定粗略的隶属函数,然后通过“学习”和实践来不断地调整和完善。遵照这一原则的隶属函数选择方法有以下几种。

(1)模糊统计法      根据所提出的模糊概念进行调查统计,提出与之对应的模糊集A,通过统计实验,确定不同元素隶属于A的程度。

对模糊集A的隶属度 =           

(2)主观经验法    

当论域为离散论域时,可根据主观认识,结合个人经验,经过分析和推理,直接给出隶属度。这种确定隶属函数的方法已经被广泛应用。

(3)神经网络法     利用神经网络的学习功能,由神经网络自动生成隶属函数,并通过网络的学习自动调整隶属函数的值。

2.4  模糊关系及其运算

2.4.1 模糊矩阵

例2.6  设有一组同学X,X={张三,李四,王五},他们的功课为Y,Y={英语,数学,物理,化学}。他们的考试成绩如下表:

表2-2   考试成绩表

取隶属函数  ,其中u为成绩。如果将他们的成绩转化为隶属度,则构成一个x×y上的一个模糊关系R,见下表。

表2-3 考试成绩表的模糊化

将上表写成矩阵形式,得:

该矩阵称作模糊矩阵,其中各个元素必须在[0,1]闭环区间上取值。矩阵R也可以用关系图来表示,如图2-10所示。

2.4.2 模糊矩阵运算与模糊关系  

设有n阶模糊矩阵A和B,   ,     ,且。则定义如下几种模糊矩阵运算方式:

例2.7  设

2.4.3 模糊矩阵的合成

所谓合成,即由两个或两个以上的关系构成一个新的关系。模糊关系也存在合成运算,是通过模糊矩阵的合成进行的。

和 分别为 和 上的模糊关系,而 和 的合成是 上的模糊关系,记为 ,其隶属函数为

例 2.8  设,    

则A和B的合成为:

例2.9 \

某家中子女和父母的长相“相似关系”R 为模糊关系,可表示为

用模糊矩阵 R表示为

该家中,父母与祖父的“相似关系” S也是模糊关系,可表示为

用模糊矩阵 S表示为

那么在该家中,孙子、孙女与祖父、祖母的相似程度应该如何呢?

模糊关系的合成运算就是为了解决诸如此类的问题而提出来的。针对此例,模糊关系的合成运算为

该结果表明,孙子与祖父、祖母的相似程度分别为0.2和0.2,而孙女与祖父、祖母的相似程度分别为0.5和0.6.

2.5  模糊推理

2.5.1 模糊语句

将含有模糊概念的语法规则所构成的语句称为模糊语句。根据其语义和构成的语法规则不同,可分为以下几种类型:

(1)模糊陈述句:语句本身具有模糊性,又称为模糊命题。如:“今天天气很热”。

(2)模糊判断句:是模糊逻辑中最基本的语句。语句形式:“x是a”,记作(a),且a所表示的概念是模糊的。如“张三是好学生”。

(3)模糊推理句:语句形式:若x是a,则x是b。则为模糊推理语句。如“今天是晴天,则今天暖和”。

2.5.2 模糊推理

常用的有两种模糊条件推理语句:If A then B else C;If A AND B then C

 下面以第二种推理语句为例进行探讨,该语句可构成一个简单的模糊控制器,如图2-11所示。

图2-11 二输入单输出模糊控制器

其中A,B,C分别为论域U上的模糊集合,A为误差信号上的模糊子集,B为误差变化率上的模糊子集,C为控制器输出上的模糊子集。

常用的模糊推理方法有两种:Zadeh法和Mamdani法。Mamdani推理法是模糊控制中普遍使用的方法,其本质是一种合成推理方法。

模糊推理语句“If A AND B then C”确定了三元模糊关系R,即:

R=(A×B)T1×C

   其中(A×B)T1为模糊关系矩阵(A×B) (m×n)构成的m×n列向量,n和m分别为A和B论域元素的个数。

基于模糊推理规则,根据模糊关系R,可求得给定输入A1和B1对应的输出C1:

C1=(A1×B1)T2R

  式中, (A1×B1)T2   为模糊关系矩阵(A1×B1)(m×n)构成的m×n列向量,T2为航向量转换。

例2.10  

设论域x={a1,a2,a3},y={b1,b2,b3},z={c1,c2,c3},已知    ,  。试确定“If A AND B then C”所决定的模糊关系R,以及输入为            , 时的输出C1。

解:

将A×B矩阵扩展成如下列向量:

当输入为A1和B1时,有:

将A1×B1矩阵扩展成如下行向量:

最后得:

即:

2.5.3 模糊关系方程

1、模糊关系方程概念

将模糊关系R看成一个模糊变换器。当A为输入时,B为输出,如图2-12所示。

图2-12   模糊变换器

可分为两种情况讨论:(1)已知输入A和模糊关系R,求输出B,这是综合评判,即模糊变换问题。

(2)已知输入A和输出B,求模糊关系R,或已知模糊关系R和输出B,求输入A,这是模糊综合评判的逆问题,需要求解模糊关系方程。

2、模糊关系方程的解

近似试探法是目前实际应用中较为常用的方法之一。

例2.11 解方程

解: 由方程得

显然三个括弧内的值都不可能超过0.4。由于   是显然的,因此x2可以取[0,1]的任意值,即x2=[0,1]。

现在只考虑:

这两个括弧内的值可以是:其中一个等于0.4,另一个不超过0.4。分两种情况讨论:

(1) 设0.6∧x1=0.4,0.4∧x3≤0.4,则          ,

即方程的解为   

(2) 设0.6∧x1≤0.4,0.4∧x3=0.4,则  ,

即方程的解为:


资料仅供学习使用

如有错误欢迎留言交流

上理考研周导师的其他专栏:

光电融合集成电路技术     电路原理

C语言       复变函数与积分变换

单片机原理

模式识别原理

数字电子技术

自动控制原理 ​​​​​​    ​​​​​​ 传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器检测技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

线性代数

工程测试技术

大学物理

上理考研周导师了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker搭建clickhouse并初始化用户名密码

1、新建挂载目录 mkdir -p /home/clickhouse-server/ mkdir -p /home/clickhouse-server/etc/2、拉取镜像 docker pull clickhouse/clickhouse-server3、创建临时容器 docker run -d --rm --name clickhouse-server --ulimit nofile262144:262144 clickhouse/clickhouse-ser…

目标检测流程

流程概述 背景:梳理目标检测标注,训练,部署全流程。供后续初学者快速上手 方案:Ubuntu(PC端)进行标注,基于OpenMMLab进行训练得到pt模型,pt模型通过转换rknn并部署。 1. 数据集 公…

成都睿明智科技有限公司可靠吗?

在这个短视频风靡的时代,抖音已不仅仅是一个娱乐平台,它更是无数商家眼中的蓝海市场,是电商领域的新宠儿。在这场流量与转化的盛宴中,成都睿明智科技有限公司以其敏锐的市场洞察力和专业的服务能力,正逐步成为抖音电商…

使用three.js 实现着色器草地的效果

使用three.js 实现着色器草地的效果 在线预览https://z2586300277.github.io/three-cesium-examples/#/codeMirror?navigationThreeJS&classifyshader&idgrassShader 在 https://threehub.cn 中还有很多案例 import * as THREE from three import { OrbitControls…

Java基础(Arrays工具类)(asList()方法)(详细)

目录 一、Arrays工具类 (1)引言 (2)基本介绍 (3)主要功能(提供的方法) (I)排序(Arrays.sort()) (II)搜索(查找…

IDEA自动清理类中未使用的import包

目录 1.建议清理包的理由 2.清理未使用包的方式 2.1 手动快捷键清理 2.2 设置自动清理 1.建议清理包的理由 有时候项目类文件中会有很多包被引入了,但是并没有被使用,这会增加项目的编译时间并且代码可读性也会变差。在开发过程中,建议设…

ISP去噪(3)_图像的高频分量和低频分量

#图像分析# 总是不好确认头发和毛绒玩具到底是低频还是高频分量。现在得出结论,头发和毛绒玩具都是高频信息,因为细节很多。 目录 图像的频率 (1) 什么是低频? (2) 什么是高频? (3)低频和高频对比 (4&#xf…

谷歌今天发布了两款升级版Gemini模型:Gemini-1.5-Pro-002和Gemini-1.5-Flash-002

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

免杀笔记 ---> 无痕Hook?硬件断点 Syscall!

说到Hook,我们有很多Hook,像Inline-Hook,我们也是用的比较多,但是正如我上一篇Blog说的,他会对内存进行修改,如果EDR或者AV增加一个校验机制,不断检验某一块内存,那么就算你用syscal…

Flink 结合kafka 实现端到端的一致性原理

Kafka 事务实现原理 Flink checkpoint 结合kafka 实现端到端的一致性 为啥taskState 的时候要开启一个新事务,因为本来做state 就相当于把barrier之前的状态做一个快照,相当于是一个新的开始,所以开启一个新的事务。那为啥checkpoint 第一步要…

如何在数据分析中处理异常?

在数据分析中,处理异常值是确保数据质量的关键步骤。以下是一些常见的方法: 1. 检测异常值 可视化方法 箱线图:通过matplotlib或seaborn绘制箱线图,识别数据中的异常值。 import seaborn as sns import matplotlib.pyplot as …

新版双向链表,添加了at, front, back, insert, emplace等为了兼容std.

例子&#xff1a; #define _list _DListint main() {list<int> c1 { 1,2,3,4,5,6,7,8,9,10};if (!c1.empty()) {c1.front() 42; //将42赋予c中的一个元素auto& v c1.back(); //获得指向最后一个元素的引用v 1024; //改变c中的元素auto v2 c1.back(); //v2不…

【笔记】Dynamic Taint Analysis 动态污点分析

Dynamic Taint Analysis 动态污点分析 什么是动态污点分析&#xff1f;为什么要搞动态污点分析&#xff1f; “污点”指的是什么&#xff1f; DTA中的“污点”指代的是不可信的输入&#xff0c;比如用户输入、网络请求、文件数据等。比方说&#xff0c;如果把程序看作一个城市&…

知识图谱检索 Graph-Based Retriever:文本块到结构化数据的转换,解决语义检索捕获不了的长尾关系

知识图谱检索 Graph-Based Retriever&#xff1a;文本块到结构化数据的转换&#xff0c;解决语义检索捕获不了的长尾关系 如何理解&#xff1f;如何分析&#xff1f;升维降维梳理为什么这种解法能查到长尾内容&#xff0c;而传统语义不行&#xff1f;解法拆解 如何关联&#xf…

大觅网之综合管理(Comprehensive Management of Da Mi Network)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

MySQL InnoDB 事务commit逻辑分析

一、前言 事务提交是事务即将落盘的一系列操作&#xff0c;涉及redo\undo log的写盘、bin log的写盘、事务状态的重置、各种参数的改变、无用undo log的清理等方方面面。 在commit过程会有两个阶段&#xff1a;一个是prepare阶段&#xff0c;入口函数为trx_prepare_low&#…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-25

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-25 1. PromSec: Prompt Optimization for Secure Generation of Functional Source Code with Large Language Models (LLMs) M Nazzal, I Khalil, A Khreishah, NH Phan - arXiv preprint arXiv:2409.12699, 2…

无人机探测:光电侦测技术详解

无人机探测技术作为现代军事、安防及民用领域的重要组成部分&#xff0c;其核心在于高效、精准地识别与跟踪空中目标。光电侦测技术&#xff0c;作为无人机探测的主要手段之一&#xff0c;利用光学与电子学原理&#xff0c;通过捕捉并分析无人机反射或发射的光信号&#xff0c;…

Debian与Ubuntu:深入解读两大Linux发行版的历史与联系

Debian与Ubuntu&#xff1a;深入解读两大Linux发行版的历史与联系 引言 在开源操作系统的领域中&#xff0c;Debian和Ubuntu是两款备受瞩目的Linux发行版。它们不仅在技术上有着密切的联系&#xff0c;而且各自的发展历程和理念也对开源社区产生了深远的影响。本文将详细介绍…

【C++指南】C++中的内存对齐规则及原因详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 目录 引言 一、为什么要进行内存对齐 二、C中的内存对齐规则 三、内存对齐示例讲解 示例代码 运行…