打印

单片机 C 语言与标准 C 语言的区别

[复制链接]
632|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
单片机 C 语言与标准 C 语言的区别是什么呢?
我知道printf函数不能随便用
沙发
关小波522| | 2015-7-26 20:50 | 只看该作者
由于现在越来越多的产品都采用单片机开发,所完成的计算和控制工作也日趋复杂,但是单片机系统是一种资源十分有限的系统,这主要表现在程序存储器资源的不足,因此在程序设计时如何使用好这些有限的资源就显得十分重要。用 C 语言编程虽然具有许多的优点,但是生成的代码相对要长,要是编程技术不好,生成的代码甚至有可能比汇编语言生成的代码长几倍, 因此对编程者来说, 应该注意到单片机 C 语言和一般意义上的标准 C 语言的区别,对程序进行适当的优化。

使用特权

评论回复
板凳
上山砍老虎| | 2015-7-26 20:58 | 只看该作者
单片机 C 语言编程不同于一般的 C语言编程的显著的一个特点, 就是要和程序存储器资
源结合起来,虽然其提供的数据据类型十分丰富,但是只有 bit 和 char 等数据类型是是机器语言直接支持的数据类型,用此类数据类型的语句所生成的代码较短;而其它的数据类型如整型、浮点型等数据要有一定的内部程序或内部函数的支持,相对来说用该类数据类型的语句生成的代码要长。有些 C 语言程序表面上看起来十分的简单,但在在实际编译时,生成的代码却相当长。因此我们要按照实际需要,合理地选用数据,可以大大的减少所生成的代码长度。 例如在 C51 中每种数据类型变量所占用存储器字节数和经编译后生成的代码长度如下表所示:
不同的数据类型所生成的机器代码长度相差很多,相同类型的数据类型有无符号对机器代码长度也有影响。 在程序编译时生成机器代码长的数据类型的优先级越高,不同的数据类型在进行程序运算时要转化为高优先级的的数据类型,相应的代码长度也会增长[2]。因此我们应尽可能地使用 bit,char 等机器语言直接支持的数据类型,无符号数的变量应声明为无符号数,尽可能地减少程序中使用的数据类型的种类。

QQ截图20150726205847.png (27.1 KB )

QQ截图20150726205847.png

使用特权

评论回复
地板
zb0830| | 2015-7-30 21:16 | 只看该作者
这些是基本的不同

使用特权

评论回复
5
zb0830| | 2015-7-30 21:18 | 只看该作者
单片机侧重与硬件的控制
要求你对硬件较为熟悉
PC的要求的是程序的规模与复杂度

使用特权

评论回复
6
heping517| | 2015-7-30 21:30 | 只看该作者
语法一样,编译器不同
单片机针对自己的芯片来编译,标准C一般都指在PC机上进行的,说白了也就是函数库不同
学标准C就看看《C primer》,谭浩强的《C程序设计》入门也不错的,不过他的书内容不怎么全
单片机的你就看你想学的型号了,MCS-51 MCS-96 凌阳……都不同的
最好先看标准C,然后转单片机

使用特权

评论回复
7
历史暴君| | 2015-7-30 21:34 | 只看该作者
资源更少,编程时要注意

使用特权

评论回复
8
zhengbo7hui| | 2015-7-30 21:40 | 只看该作者
没有太多的区别,标准C有些库函数不能用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

624

帖子

0

粉丝