0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统设计中的注释和调试代码

星星科技指导员 来源:嵌入式计算设计 作者:Colin Walls 2022-06-20 16:04 次阅读

造成这种情况的一个原因是,虽然初始编码可能进展迅速,但调试周期似乎是无休止的。以后,代码的维护是不可避免的,而且需要比预期更多的时间。这是因为在尝试修改之前准确理解代码的功能会产生开销。

这一观察的结果是,应高度重视代码的可读性。易于阅读的代码不太可能出现错误,因此减少了调试时间。如果代码易于理解,则更易于维护。因此,请始终牢记人类读者——毕竟,它可能是你。(我听说它建议你假设你的代码未来的维护者是一个知道你家庭地址的精神病患者。)

代码由两部分组成:编译器需要看到的东西(C 语句和声明)和需要对编译器隐藏的文本(主要是供人类读者使用的)。隐藏的东西主要是:

文档——代码中的注释

暂时删除的代码——调试过程中不可避免的一部分

调试/跟踪代码——可以根据需要打开和关闭

有趣的是,如果您取出纯粹为人类读者阅读的内容(其中还包括使用有意义的标识符和额外的空格,如换行符),结果是完全不可读的代码。一些软件公司利用这一点来分发源代码,同时保护他们的知识产权。

我将看看我们对编译器隐藏的东西。

文档

每个人都知道评论是个好主意,但我们都很懒惰。然而,这种努力是值得的。旧式/* 。.. */ C注释还可以,但我觉得 C++ 行尾[ //。.. ]的变化更清晰。它们仍然需要小心使用。例如,像这样的代码:

并且不要使用标签。它们不是便携式的。

临时代码删除

在调试和测试代码的过程中,能够暂时“关闭”一段代码通常很有用。许多程序员通过将/*放在开头,将*/放在结尾来“注释掉”代码以实现此结果。这是快速而肮脏的,但经常无法达到所需的结果。许多编译器不支持嵌套注释,因此,如果代码已经被注释,就会出现问题。总的来说,它容易出错,应该避免。

使用 C++ 风格的//注释符号——即,将//放在每行的开头——稍微好一点,但应用起来非常乏味,而且在删除时也可能容易出错。

实现此结果的最佳方法是使用预处理器指令,因此:

pYYBAGKwKjSALOWlAABZWkqWh5w343.png

在任何情况下,“关闭”的代码序列都不应包含在任何正在考虑发布的代码中。

调试/跟踪代码

另一种临时代码是为了便于在调试时输出或记录额外信息而包含的。尽管现代调试器和此类工具可能非常有效,但有时检测代码仍然是弄清楚到底发生了什么的最佳方式。现代开发工具是如此之快,以至于重建以创建启用调试的映像并不是一个严重的开销。

促进这一点的常用方法是使用预处理器指令,因此:

pYYBAGKwKjqAJ8EaAAB-nOlqiY0385.png

因此,当定义符号DEBUG_TRACE时,将包含调试代码。

一个稍微不同的方法是这样编码:

poYBAGKwKkKASFBzAAB3g2IwyBc961.png

这个双重否定看起来很笨拙,但是这个符号用于控制标准的assert()宏。程序员需要定义符号来抑制调试模式。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73618
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68521
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49108
收藏 人收藏

    评论

    相关推荐

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备
    的头像 发表于 12-09 09:38 233次阅读

    HAL库在嵌入式系统的应用

    HAL库(Hardware Abstraction Layer Library,硬件抽象层库)在嵌入式系统扮演着至关重要的角色。以下是HAL库在嵌入式
    的头像 发表于 12-02 11:32 460次阅读

    mmc卡在嵌入式系统的使用

    随着科技的发展,嵌入式系统在我们的日常生活扮演着越来越重要的角色。从智能手机到家用电器,再到工业控制系统嵌入式
    的头像 发表于 11-25 09:58 223次阅读

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式
    的头像 发表于 10-16 10:14 923次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备执行专门任务。
    的头像 发表于 09-30 10:05 449次阅读

    嵌入式系统的实时操作系统

    嵌入式RTOS是嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。在本节,您将了解嵌入式软件开发人员使用哪些流行RTOS以及它们运行的嵌入式
    的头像 发表于 08-20 11:28 480次阅读

    嵌入式系统怎么学?

    开发工具:熟悉常用的嵌入式系统开发工具,包括集成开发环境(IDE)、编译器、调试器(如Keil、IAREmbedded Workbench、Eclipse)等。 5、实时操作系统(R
    发表于 07-02 10:10

    如何提升嵌入式编程能力?

    代码以提高性能,包括减少内存使用、提高处理速度等。 16. 调试技巧:掌握嵌入式系统调试技巧,包括使用
    发表于 06-21 10:01

    嵌入式系统的外设器件选择

    ,都可视系统的实际需求来进行选择。本文将为您介绍上述外设器件的类型与选择的考虑要素。 存储器的种类众多且特性不同 存储器 在嵌入式系统,[存储器]是一个关键的器件,它用于存储程序
    的头像 发表于 05-05 09:38 897次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的外设器件选择

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM
    发表于 05-03 09:54 554次阅读

    如何成为一名嵌入式C语言高手?

    系统,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    系统,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术
    发表于 03-25 14:12

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统的一种解决方案。嵌入式系统是一种为特定应用而设
    的头像 发表于 03-15 14:29 1243次阅读

    嵌入式系统发展前景?

    设备、健康监测等领域有着广泛的应用前景。随着人们对健康的重视程度不断提高,嵌入式系统将更为深入地应用于医疗设备和健康护理,实现个人健康管理的智能化和实时化。 汽车电子和自动驾驶是嵌入式
    发表于 02-22 14:09

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将
    发表于 02-02 15:24