![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
luren2015
这个作者很懒,什么都没留下…
展开
-
__attribute__ ((packed)) 的作用
__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;}sizeof(int)=2;sizeof(my)=3;(紧凑模式)在GCC下:struct m...转载 2020-08-07 15:44:27 · 396 阅读 · 0 评论 -
C语言中长度为0的数组
长度为0的数组在标准c和c++中是不允许的,如果使用长度为0的数组,编译时会产生错误,提示数组长度不能为0。但在GNUc中,这种用法却是合法的。它的最典型的用法就是位于数组中的最后一项,如上面所示,这样做主要是为了方便内存缓冲区的管理。如果你将上面的长度为的数组换为指针,那么在分配内存时,需采用两步:首先,需为结构体分配一块内存空间;其次再为结构体中的成员变量分配内存空间。这样两次分配的内存是不连续的,需要分别对其进行管理。当使用长度为的数组时,则是采用一次分配的原则,一次性...转载 2020-08-07 15:23:11 · 578 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度
转载于:https://www.jianshu.com/p/1ac6ad4069f8https://www.jianshu.com/p/88a1c8ed6254一、时间复杂度(Time complexity)一个算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,T(N)也在变化,算法执行次数的增长速率和f(N)的增长速率相同。1、常数阶O(1),不存在循环结构,如以下代码段int sum = 0, n =.转载 2020-06-29 23:15:18 · 510 阅读 · 0 评论