快捷搜索:  汽车  科技

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)算法优化其实主要是我们通过修改一些算法的实现一种效率与内存使用的一个平衡,我们都知道我们的算法都存在着复杂度的问题,我们大部分高效率的算法都是通过使用内存来换效率,也就是一种用空间换时间的概念。那么当我们内存使用有限的时候我们可以适当的用时间来换空间的方法,腾出更多的空间来实现更多的功能。还有就是尽量使用局部变量来减少全局变量的使用!废话不多说,代码说明一切:小端模式(Little_endian):一个数据的高字节存储在高地址,低字节存储在低地址。其指针指向的首地址位于高地址。位域可能对于初学者用得比较少,不过对于大部分参加工作的工程师应该屡见不鲜了,确实它也是我们省内存的神器。​ 结构体对齐问题可能大部分人关注的不是很多,可能在通讯领域进行内存的copy时候接触得比较多。结构体对齐问题也是与平台相关,CPU为了提高访问内存的效率,一次性可能读取2个字节,4个字节,8个字节等,所以编译器会

前言

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)(1)

首先单片机编程和计算机编程有个最大的差别就是单片机的资源非常的有限,所以在内存上面要求比普通软件开发要求更高。其次,在网络编程当中,网络数据的传输也是需要注意数据设计内存的大小的。面我总结了几种常总方法供大家参考。

共联体-union

union-共联体,是C语言常用得关键字。从字面上的意思就是共同联合在一起的意思,union所有的成员共同维护一段能够内存空间,其内存的大小取决于所有成员中占用空间最大的成员。联合体的特色如下:

  • 所有的union的成员及本身的地址是一样的。
  • union的存储模型受大小端的影响。

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)(2)

大小端知识

大端模式(Big_endian):一个数据的高字节存储在低地址,低字节存储在高地址。其指针指向的首地址位于低地址。

小端模式(Little_endian):一个数据的高字节存储在高地址,低字节存储在低地址。其指针指向的首地址位于高地址。

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)(3)

位域

位域可能对于初学者用得比较少,不过对于大部分参加工作的工程师应该屡见不鲜了,确实它也是我们省内存的神器。

  • 位域是在结构体中实现的,且一个位域只能定义在同一个存储单元中。
  • 无名位域的使用,可以看下面的代码。
  • 由于位域与数据类型有关系,那么他的内存占用情况也与平台的位数相关。

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)(4)

结构体对齐

​ 结构体对齐问题可能大部分人关注的不是很多,可能在通讯领域进行内存的copy时候接触得比较多。结构体对齐问题也是与平台相关,CPU为了提高访问内存的效率,一次性可能读取2个字节,4个字节,8个字节等,所以编译器会自动对结构体内存进行对齐。

废话不多说,代码说明一切:

c语言学习需要掌握的基础知识(很多学C语言的人忽略的事儿)(5)

算法优化

算法优化其实主要是我们通过修改一些算法的实现一种效率与内存使用的一个平衡,我们都知道我们的算法都存在着复杂度的问题,我们大部分高效率的算法都是通过使用内存来换效率,也就是一种用空间换时间的概念。那么当我们内存使用有限的时候我们可以适当的用时间来换空间的方法,腾出更多的空间来实现更多的功能。还有就是尽量使用局部变量来减少全局变量的使用!

尾言

如果阁下C语言比较差的,二进制都不知道是什么的同学,不妨关注下小编的专栏视频教程

《C语言51课视频教程合集》

《C语言十大新手练手项目实战》

《C语言数据结构那点事儿》基础版哦

《C 45课视频教程》

通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势,人人都可以学习的C语言课程

猜您喜欢: