一、前言 我们平常在写代码的时候,特别是在制造轮子的时候(为别人提供库文件),会遇到各种不同的需求场景: 有些人需要在 Linux 系统下使用,有些人需要在 Windows 系统下使用; 有些人使用 C 语言开发,有些人使用 C++ 来开发; 有些人使用动态库,有些人使用静态库; 特别是在 Wind Read More
posted @ 2021-04-01 10:14 IOT物联网小镇 Views(502) Comments(0) Diggs(1) Edit
一、前言 想象一下这个工作场景:你在为一个项目写一个功能库,别人调用库中提供的函数,后来你发现库里的函数A是 多余的。 具有完美情节的你,就是想把这个函数A废弃掉,此时肯定是不能直接删掉,因为你不知道别人在多少个地方调用了这个函数。 这种情况如何处理比较好呢? 这篇小短文就来聊一聊这个问题。 二、操 Read More
posted @ 2021-04-01 10:12 IOT物联网小镇 Views(109) Comments(0) Diggs(0) Edit
一、前言 在上一篇文章中,介绍了一种纯软件算法,用来实现临界区的保护功能,文章链接: C语言边角料2:用纯软件来代替Mutex互斥锁。 首先明确一下:如果利用操作系统提供的互斥锁可以实现我需要的功能,我肯定使用互斥锁,之所以介绍 Peterson 这个算法,主要是因为它比较有意思,很小巧,可以为我们 Read More
posted @ 2021-04-01 10:10 IOT物联网小镇 Views(147) Comments(0) Diggs(0) Edit
一、前言 在 Linux 系统中,当多个线程并行执行时,如果需要访问同一个资源,那么在访问资源的地方,需要使用操作系统为我们提供的同步原语来进行保护。同步原语包括:互斥锁、条件变量、信号量等,被保护的代码称作“临界区”。 这是非常正规的流程,我们基本上也都是这么做的。 那有没有想过,这些同步原语对代 Read More
posted @ 2021-04-01 10:09 IOT物联网小镇 Views(190) Comments(0) Diggs(0) Edit
道哥的第100篇原创 一、前言 这几天在把一个嵌入式项目的代码,移植到另一个平台,发现很多地方用的都是 C89 标准。 1999 年,C语言的标准化委员会发布了 C99 标准,引入了许多特性,包括可变长度的数组、灵活的数组成员(用在结构体)、对IEEE754浮点数的改进、指定成员的初始化器、内联函数 Read More
posted @ 2021-04-01 10:07 IOT物联网小镇 Views(137) Comments(0) Diggs(0) Edit
道哥的第 030 篇原创 一、一个真实的代码泄漏故事 事情发生在功能机的时代,我们项目组开发一款手机,软件开发成员大概有 20 人左右吧。结果在手机发布的一周后,另一家小厂就推出了软件界面、功能几乎完全一样的手机,除了开机界面。 因为那个时代,大家几乎都是使用 MTK、高通提供的解决方案,都是统一的 Read More
posted @ 2021-04-01 10:06 IOT物联网小镇 Views(3975) Comments(0) Diggs(0) Edit
一、Starlink星链计划是什么? 今年的 3.15 晚会,很多人都觉得缺少了特斯拉的一席之地,最近马斯克忙的很,又是在中国辟谣没有监控车主,又是在推特上跟网友“干架”,这么成功的商人,精力还这么充沛,真的让我们佩服! 今天我们来了解一下马斯克的另一个宏伟蓝图:Starlink(星链)项目,听起来 Read More
posted @ 2021-04-01 10:05 IOT物联网小镇 Views(1277) Comments(0) Diggs(0) Edit