自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

echo_bright_的博客

计算机网络基础/ Linux网络编程

  • 博客(6)
  • 资源 (2)
  • 收藏
  • 关注

原创 环形缓冲区

在嵌入式软件开发中,经常会遇到这样的场景,创建一个临时缓冲区用于存放待读取的数据。这时候,环形缓冲区是一个不错的选择。所谓环形缓冲区就是一段有限的内存空间,并且有两个指针分别代表读、写指向这一块内存,读指针表示读的位置,写指针则表示写的位置。当这块内存被写满的时候,写指针会回到内存的起始位置写,读操作也是如此,读到最后的位置会回到内存起始位置读取,要实现这样的指针移动功能,移动指针操作就并非单纯的+

2017-03-18 16:37:29 2036

原创 指针的减法运算和指针在函数间的传递

昨晚在微信上和老友讨论c语言指针的相关问题,得到点收获。他和我一样,都是2016年6月份毕业的,从事的也都是嵌入式 软件开发工作。下来,我尝试着将讨论的内容讲清楚。说明,下面测试程序会用到两个宏: NUM和ERRP,它们的原型为:#define ERRP(con, ret, ...) do \ if (con){ \ printf(__VA_A

2017-03-17 15:14:54 1534 1

原创 指针的灵活运用

1. 将变量强制转换为地址c语言中存放地址值一般都采用指针,也就是说指针是存放变量的地址值的。在32位操作系统中,指针都是占据4字节,所以可以使用int型变量来存放变量的地址值int a = 6; int addr = &a; //warning: assignment makes integer from pointer //without a cast,警告,暂且不予理会pri

2017-03-16 11:48:05 561

原创 结构体中的字节对齐问题

为了提高CPU访问内存的效率,可能CPU在读取数据时会一次性读取4字节、或者是2字节、8字节等大小的数据,所以编译器在把数据存放于内存的时候,会自动对齐。1. 字节对齐规则字节对齐有下面几种规律:1.1 以最大的成员占据的空间大小对齐typedef struct _t{ char a; //1Byte char b; //1Byte int i; //4B

2017-03-14 15:24:46 4888 1

原创 谈谈c语言的结构体

记得在学校上课的时候,结构体和指针章节,老师并没有花太多的课时去讲解,然而,这一部分内容却十分关键,特别是在基于LINUX的项目开发中,或者ARM应用开发。工作之余,先来谈谈结构体这个小东西。1.结构体的概念结构体是一种复合型数据类型,同属于复合型数据类型的还有联合体。结构体可以理解为是一种自定义类型,用于对其他数据类型(什么int型,double型,float型等等)的打包。c语言中正是因为结构体

2017-03-14 13:52:07 657

原创 变量在函数间的传递

变量在函数间的传递在c语言中,传递在函数间的变量有普通变量和指针变量,在被调函数中想要修改主调函数传来的变量,是我们在实际开发中经常用用到的技术。1.普通变量的传递(值拷贝)int test_func(int test_a){ test_a = 5; return 0;}int main(void){ int main_a = 1; test_func(main

2017-03-13 16:53:15 2434

Linux内核链表(移植完成)

linux内核链表设计的得十分巧妙,代码将其从内核代码总移植出来,可适用于应用程序软件。

2018-02-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除