ANSI C 代码开发的关键要点与实践
在开发 ANSI C 代码时,有三个重要的主题值得深入探讨,分别是使用调试器还是调试打印、从 C 语言过渡到 C++ 或反之需要考虑的问题,以及微处理器性能评估程序(即基准测试)。
1. 调试器与调试打印
1.1 调试的必要性
在实际编程中,程序员很难写出 100% 正确的代码。如今复杂的编程任务,验证代码和修复错误所花费的时间往往比项目的概念设计和实现阶段还要多。嵌入式软件开发中常见的错误包括:
- 输入错误,如常量值、变量名、地址值的语法或拼写错误。
- 与 I/O 设备通信错误,特别是缺少中断使能或清除标志。
- 子程序链接错误,包括版本控制问题。
- 内存寻址、位置和等待状态错误。
- 程序编写不佳,未实现正确的代数运算或数据流。
1.2 调试打印
调试打印是一种简单的调试方法,通过 printf()
在终端/屏幕上显示关键变量,或使用 fprintf()
将数据输出到文件。例如:
printf("Debug printing (y/n) ?\n");
scanf("%c",&ask);
…
if (ask=='y') printf("New SW value = %d\n", SW_value);
然而,这种方法会使最终程序包含所有调试代码,不仅占用 CPU 时间,还会显著增加程序大小。以下是 led_count 程序在有无调试代码时的下载体积: