随笔分类 -  C/C++

摘要:C_struct中的长度可变数组(Flexible array member) Flexible array member is a feature introduced in the C99 standard of the C programming language (in particular 阅读全文
posted @ 2018-05-31 13:43 gexin1023 阅读(1662) 评论(0) 推荐(0) 编辑
摘要:C struct中的位域 bitfield 结构体的成员可以限制其位域,每个成员可以使用用比字节还小的取值范围,下面的结构体s1中,四个成员每个成员都是2bit的值(0~3),整个结构体占据的空间依然是4个字节,但是第一个字节中表示了四个成员,后续三个字节没有用到。 位域限制对于一些非字节对齐的变量 阅读全文
posted @ 2018-05-30 13:36 gexin1023 阅读(445) 评论(1) 推荐(0) 编辑
摘要:预分配内存fifo实现可变长度字节序列存储 github链接 "https://github.com/gexin1023/utils/tree/master/fifo" fifo即先进先出队列,可以用链表来实现,在链表头部插入数据,尾部读数据,每次插入新的数据都动态分配一段内存用于数据存储,适用于变 阅读全文
posted @ 2018-04-26 11:05 gexin1023 阅读(1328) 评论(0) 推荐(0) 编辑
摘要:c中的static变量 static变量分配在内存中的数据段,函数内部声明的static变量在函数调用结束时,依然保持在内存中, 静态变量只能被const类型的变量初始化,例如下面的函数会出错 include int initializer(void) { return 50; } int main 阅读全文
posted @ 2017-09-12 12:00 gexin1023 阅读(189) 评论(0) 推荐(0) 编辑
摘要:在32位系统中,int类型的最大值是0x7fffffff(即除了最高的1Bit其他31位都为1),而最小值是0x80000000(除了最高1bit,其他31位都为0)。 显然,对于最小值求负数是不存在的,为什么会使最小值本身呢? 这是由于在计算负运算时,是针对int类型数据进行“取反加一”操作。这样 阅读全文
posted @ 2017-09-06 15:56 gexin1023 阅读(2863) 评论(0) 推荐(0) 编辑
摘要:pragma pack(n)对齐格式 \ pragma pack(n) 是预处理器用来指定对齐格式的指令,表示n对齐。当元素字节小于n时,要扩展到n;若元素字节大于n则占用其实际大小。 对于tmp结构体,32位系统中默认情况下按照4字节对齐,该结构体占用12个字节,上面函数的输出如下: 当在结构体定 阅读全文
posted @ 2017-09-04 11:52 gexin1023 阅读(309) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示