编程时,经常用到进制转换、字符转换。比如软件界面输入的数字字符串,如何将字符串处理成数字呢?今天就和大家分享一下。01字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; ch...
关注、星标公众号,直达精彩内容来源:整理与网络素材编程时经常用到进制转换、字符转换。比如软件界面输入的数字字符串,如何将字符串处理成数字呢?和大家分享一下。01字符串转十六进制代码实现:voidStrToHex(char*pbDest,char*pbSrc,intnLen){ch...
▼点击下方名片,关注公众号▼一、如何进行按键检测检测按键有中断方式和GPIO查询方式两种。推荐大家用GPIO查询方式。1.从裸机的角度分析中断方式:中断方式可以快速地检测到按键按下,并执行相应的按键程序,但实际情况是由于按键的机械抖动特性,在程序进入中断后必须进行滤波处理才能判定...
点击“蓝字”关注我吧总述 宏的使用,大家经常会用,但是一般只是简单定义一个符号常量,类似于#defineWHEEL_SCALE_MM 0.53f、#defineLOG_I(tag,text_fmt,...)log_i(tag,text_fmt,##__VA_ARGS__) ...
01—C虚函数探索C是一门面向对象语言,在C里运行时多态是由虚函数和纯虚函数实现的,现在我们看下在C中如何用虚函数实现多态。先来看一段代码。//virtual_function.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include class Ba...
来自公众号:嵌入式ARM1、字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i 9) ...
来源|程序喵大人在软件中随处可见命名:要给变量、函数、参数、类和封包命名,还要给源代码及源代码所在目录命名,甚至还有jar文件、war文件和ear文件命名。但是,看似简单的命名,也是让不少程序员头疼的问题。有一些小伙伴,在进行变量命名的时候,对于自己熟悉的英文,可能还会用英文命名一下,如果需要命名的部分不会用英文表达,或许就直接用拼音了。有的童鞋一下想不起来怎么命名,直接用拼音直接用aa,bb等这样没有任何代表意义的字母来命名,可读性非常差,可能自己今天写的,一个星期后回来再看,也忘记其具体代表的含义了。因此,许多人在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C、Java、Pyt...
点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!来源:CSDN1.函数宏介绍函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。函数宏本质上为宏,可以直接进行定义,例如:#define INT...
# 干了这碗鸡汤生活是苦难的,我又划着我的断桨出发了。--博尔赫斯想必很多人都听说过虚函数开销大,貌似很多答案都说是因为虚函数表导致的那一次间接调用,真的如此吗?直接看下面这两段代码:#include #include "timer.h"struct Base { publi...
C内联函数的概念介绍内联函数之前,需要说明一下C在执行普通函数时的一个过程,在调用普通函数时,执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈,跳转到标记函数起点的内存单元,执行函数代码,然后调回到地址被保存的指令处,下图是关于C普通函数调...
“一个函数的代码尽量不要超过50行”
什么是可重入函数与不可重入函数?两者有何优缺点?
在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数, 下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫色的 to Cortex System timer(MHz)就是Systick的时钟频率
一文了解字符串转十六进制。
但 凡是学过C语言的人,都知道要先写main函数,然而很多时候我们看到的main函数却各有差异,这究竟是为啥? 哪种是对的呢? 今天我们就来聊聊main函数。 那么main函数一共有多少个版本呢? 1、main() 直接的mian()并没有返回值,没有入参。这种写法实际来
这是一个群友发的笔试题目,里面涉及的东西也比较有意思。 直接看代码 void (*f[])(char *) 这个是个什么东西? 我们先看看下面的东西 函数指针和指针函数的定义 我们看个代码 int *func(int a,int b) 我们之前说过运算符的优先级,「 * 」 的优先级低于「(
1、字符串转十六进制 代码实现: void StrToHex(char *pbDest, char *pbSrc, int nLen) { char h1,h2; char s1,s2; int i; for (i=0; i
以下源代码是之前阅读C库代码获取的,分享一下: _lrotr()将一个无符号长整形数左循环移位的函数 原形:unsigned long _lrotr(unsigned long value,int count) 功能:将value向左循环移动count位。 返回值:将value向左循环移动count位后的值。 头文件:stdli
前面移植了RT-Thread Nano,其实准确来说那不叫移植,那叫做部署,因为移植的工作官方已经帮我们做好了。 文章链接:小熊派移植RT-Thread Nano 1、引发思考-相关资料检索 在之前的文章提到过,RT-Thread已经提前在main函数以前就把跟硬件配置、系统初始化、启
1 不可重入函数 在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。