只有注册用户登录后才能阅读该文。 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文
摘要:
1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进 程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要... 阅读全文
摘要:
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译... 阅读全文
摘要:
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较... 阅读全文
摘要:
关键是 栈 和 堆的区别:堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序... 阅读全文
摘要:
每个人在日常生活中都有可能遇到类似的尴尬情况:到超市以后发现自己忘记要买什么东西,同事好友的名字到了嘴边又突然说不出来。之所以会发生这类事情,是 因为每个人都会发生瞬时(短期)记忆力丧失的情况,也就是大脑中一种名为α2 的脑电波发生轻度异常。这并不是一种病理性改变,所以无妨大碍,但的确会让人发窘。人... 阅读全文
摘要:
在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对 于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是... 阅读全文
摘要:
sizeof()功能:计算数据空间的字节数1.与strlen()比较strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作指针均可看为变量类型的一... 阅读全文
摘要:
1、前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示:typedef struct _data_t { int a; int b;}data_t;data_t data = { .a = 10, .b = 20,};... 阅读全文
摘要:
有时看到如下的代码: ?12345678910111213141516171819/*****************************/#include #include #include void test(){printf("123456\n");}int main(int argc, ... 阅读全文