库函数和寄存操作到底哪个好,这个不好说,只能说根据个人情况和应用场合吧。比如说我,虽然说我一直用的是标准库函数,但是我也不只是用标准库,偶尔在需要的时候会用寄存器操作,因为寄存器操作的效率更高。
库函数和寄存器操作的区别可能和 C 语言与汇编语言的区别差不多吧,都是跟效率有关,但有时候效率并不是唯一指标。
我们都知道 C 语言的效率要比汇编低,但是现在绝大多数嵌入式开发人员用的还是 C 语言!为什么,因为它简单易学,容易跨平台,移植性好,这是很大的优势,而汇编就不同了,它针对的是某一款内核进行开发,比如51汇编语言、ARM汇编语言,一旦内核变了,如果你的代码采用纯汇编写的代码,那几乎所有的代码都不适用了。但是使用 C 语言编写代码就不同,你在 51 单片机写的代码也能在 STM32 单片机中使用,你要做的工作就是把涉及到底层硬件的代码稍微修改一下就可以了,这种工作量很少,你的代码写得足够好的话,是很容易的,这称之为移植。那为什么 C 语言可以做到跨平台呢?我们知道单片机最终还是要通过汇编语言执行的,所有的 C 语言其实都会通过编译器进行转化的,也就是说你写的 C 语言程序会经过一种称为编译器的东西转为对应的汇编语言,比如说你的 C 语言程序要运行在 51 单片机上,你就要用对应的编译器编译,如果要运行在 STM32 上,你也要用另一个对应的编译器才行,这就是 C 语言能跨平台的秘密!跨平台的工作是交给了编译器,而不是说 C 语言真的能直接在各种单片机上运行!
但是真正的单片机程序并不是只有 C语言的,在进入 C 的世界之前,其实是有一段代码的,这称之为启动代码&#