嵌入式开发中使用C语言的常见误区

  因此在单片机上以下功能能不用尽量不用:

  动态变量的申请和释放:malloc 和free:空间不够时,少量的可以重复使用一些变量空间;大量的可改用固定数组自己重复使用这些空间就可以了。除非能预见可能出现的所有情况,否则频繁申请空间和释放,系统一定会崩溃!和字符串相关的函数,包含printf,sprintf等,因为C语言字符串处理使用了动态内存,而且资源不足,对于你少量的格式转换,自己写个程序来实现,这样连接时就不会把这部分代码连接到目标代码中,既可以使代码短小运行速度快,也可以避免一些错误,当有问题时也容易查错。还有并非所以C编译器都支持这些函数,有时需要自己写点东西,如stdin stdout stderr(在avr 和stm32中都要自己重定向这三个函数);不用这些函数,你源代码的可移植性就增强了。少用浮点运算;浮点运算得不多,如果需要在输出的时间涉及小数,可以输出时转换一下,只要哪怕有一处使用浮点数,连接时就要连接整个浮点运输库,代码增大很多。慎用迭代算法,这通常出现在排序算法中,还有运行时计算表达式,这对于单片机来说堆栈很小,一不留神就出界了。少用函数指针。这类高级的应用是C语言的特色,但这类应用中要是还包括传递参数,甚至不同类型的参数,要是有错很难查。对初学者,少用指针变量,因为一不小心指向的就不是你想要的空间了。

#学习路径#
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务