- 1
- 0
- 约1.63万字
- 约 70页
- 2023-02-10 发布于江西
- 举报
* * * * * * * * * * * * * * * * * * * ■ Keil C代码的优化技巧 ◆ 采用短变量 提高代码效率的最基本的方式就是减小变量的长度。当使用C编程时,常习惯于对循环变量使用 int 类型,这对 8 位的单片机来说是一种极大的浪费。此时应该仔细考虑所声明的变量的取值范围,然后再根据取值范围选择合适的变量类型。 因此,在多数情况下,循环变量可定义为 unsigned char 类型,而不是常用的 int 类型。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 使用无符号类型 由于8051不支持符号运算,所以程序中也不要使用含有带符号变量的外部代码。除了根据变量长度来选择变量类型以外,还要考虑变量是否会用于负数的运算。 如果程序中可以不用到负数运算,则定义的变量都应为无符号类型。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 避免使用浮点指针 在 8 位操作系统上使用 32 位浮点数是得不偿失的。虽然可以这样做,但会浪费大量的时间。所以当在系统中使用浮点数的时候,一定要确认是否有必要。 处理 int 和 long 类型数据要比 double 和 float 数据方便的多。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 使用位变量 对于某些标志位,应使用位变量而不是 unsigned char 。这样将节省内存,而且位变量在RAM中,访问它们只需要一个处理周期。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 用局部变量代替全局变量 把变量定义为局部变量比全局变量更有效。 编译器为局部变量在内部存储区中分配存储空间,而为全局变量在外部存储区中分配存储空间。这样,对于全局变量来说会降低访问速度。 另外一个避免使用全局变量的原因是必须在系统处理过程中调节使用全局变量,因为在中断系统和多任务系统中,不止一个过程会使用全局变量。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 为变量分配内部存储区 局部变量和全局变量可被定义到想要的存储区中。根据前面的讨论,把经常使用的变量放在内部RAM中,可使程序的执行速度得到提高。除此之外也可缩短代码,因为外部存储区寻址时要相对麻烦一些。 考虑到存储速度,可按如下顺序使用存储区: data、idata、pdata、xdata 当然,在内部RAM中还要记得留出足够的堆栈空间。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 使用特定指针 当在程序中使用指针时,应指定指针的类型,确定它们指向哪个区域,如 xdata 或 code 区。这样做可使编写的代码更加紧凑,因为编译器不必再去确定指针所指向的存储区域。 3.1 单片机的C51语言基础 ■ Keil C代码的优化技巧 ◆ 使用宏定义来替代函数 对于小段代码,可通过使用宏来替代函数,以增强程序的可读性。将代码定义在宏中,看起来更像是函数。编译器遇到宏时,会按照事先定义的代码去替代宏;而需要改变宏时,只需要在宏定义处进行修改。如: #define led_on( ) { led_state = LED_ON; XBYTE[ LED_CNTRL ] = 0x01; } #define led_off( ) { led_state = LED_OFF; XBYTE[ LED_CNTRL ] = 0x00; } 3.1 单片机的C51语言基础 * * * * * * * * * * * * * * * * * * * * * * * * ■ 运算符 ◆ 算术运算符: 3.1 单片机的C51语言基础 ■ 运算符 ◆ 关系运算符: 3.
您可能关注的文档
- 企业资产管理系信息化ppt课件(完整版).ppt
- dows-Server-2012网络操作系统项目教程试卷B参考答案及评分标准.docx
- 人工智能基础与应用全书电子教案正本书课件全套ppt最全教学教程电子讲义.pptx
- 计算机网络应用全书电子讲义完整版ppt整套教学课件最全教学教程.pptx
- IllustratorCS2精品教程完整版教学课件-整套教程电子讲义(最全最新).ppt
- 软件工程与Rose建模案例教程-完整版ppt全套教学教程(最新).ppt
- Java语言程序设计-全套课件.pptx
- 计算机网络基础任务教程完整版ppt课件全套教程教.ppt
- 项目五--探究电子商务物流-任务一ppt课件(全).ppt
- 电子商务客户服务ppt课件汇总(完整版).ppt
最近下载
- ISO IEC 42001 人工智能管理体系白皮书——AI风险治理.docx
- ISO_IEC 42001_2023 人工智能管理体系要求培训课件.pptx VIP
- ISO IEC42001-2023人工智能管理体系培训教材.pptx
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之5:“5领导作用-5.2 人工智能方针”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之13:“7支持-7.5成文信息”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之8:“6策划-6.3 变更的策划”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之16:“10改进”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之10:“7支持-7.2能力”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- ISO∕IEC 42001-2023《信息技术-人工智能-管理体系》之17:“8 运行”解读和应用指导材料(雷泽佳编制-2024A0).docx VIP
- 《ISO∕IEC42024-2025信息技术-人工智能-管理体系》解读和应用指导材料(雷泽佳2024A0).pptx VIP
原创力文档

文档评论(0)