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