
C标准库
文章平均质量分 78
PlayCodes
大胆去做自己喜欢的事情
展开
-
嵌入式C语言的高级使用(全网最详细)
嵌入式C语言的高级使用(全网最详细)一、宏宏,在我看来是一个C语言中的一大特色,在此基础上可以使用一些特殊的功能。1.1 变类型参数宏在一些运用场景下,我们常常要用到类似于二者求最大、最小值,常常将这样的简单的一个功能封装为一个方法函数,但在函数的语法中,要明确定义参数的变量类型,也就是不同类型的变量需要建立相对不同的函数,但我们使用一些特殊的手段,就可以用宏实现不定类型的带参宏。见如下例子:#define max(x,y)({\ typeof(x) _x = (x);\ typeof(y)原创 2021-08-27 13:45:07 · 1092 阅读 · 2 评论 -
STM32实现按键有限状态机(超详细,易移植)
STM32实现按键有限状态机(超详细,易移植)一、状态机简而言之,状态机是使不同状态之间的改变以及状态时产生的相应动作的一种机制。1.1状态机的四要素现态:状态机当前状态。触发条件:改变当前状态的发生条件。动作:状态改变产生相应的动作。次态:状态机激活触发条件后跳转到的下一状态。注意:状态和动作是不同的,状态是持续的而动作是间断的,改变状态产生动作,动作完成后,状态依旧持续。1.2为什么要使用状态机 举一个简单的例子,在实现按键扫描常常有三种方式轮询方式原创 2021-08-18 20:03:11 · 10394 阅读 · 3 评论 -
可变参数的使用
可变参数的使用在写C代码的时候,有的时候会想要一个函数可接受变化数目的参数。类似C stdio库中的printf syslog等函数。于是就想着如何像标准库一样实现一些自己的可变参数函数呢?比如printf函数,它还存在一个vprintf版本,定义如下:#include <stdio.h>int printf(const char *format, ...);#include <stdarg.h>int vprintf(const char *format, va_li原创 2021-05-26 10:13:06 · 404 阅读 · 0 评论