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

    文章

    2129

    浏览量

    77375
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74381
  • 编译器
    +关注

    关注

    1

    文章

    1672

    浏览量

    51912
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式驱动开发,需要掌握哪些技能?

    有经验的老司机都知道,做嵌入式驱动开发需要掌握一系列的技能,包含编程、硬件、操作系统调试等多个方面。 1、硬件知识熟悉原理图:能看懂原理图以及各种元器件的含义,以及PCB布局等。 了解
    发表于 01-20 16:46

    什么是嵌入式应用开发?

    、实现和部署,还包括硬件选择、软件设计、测试、集成和维护等流程‌。 定义和背景 嵌入式应用开发是指将软件部署到嵌入式系统,这些系统广泛
    发表于 01-12 16:13

    系统嵌入式的学习路线

    的知识太多,太杂,太广,很多嵌入式初学者陷入嵌入式知识的海洋,东学一点,西学一点,找不到学习的方向。 我从事嵌入式开发工作有10年,嵌入式
    发表于 12-16 07:49

    什么是嵌入式操作系统

    嵌入式 OS 的核心作用(嵌入式开发中最实用的 3 个功能) 1. 多任务管理: 裸机开发的痛点:所有功能写在一个main函数的循环里,代码臃肿、逻辑混乱,一个功能出问题会影响整个系统
    发表于 12-09 10:33

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM。这些
    发表于 11-17 06:49

    用普源MSO5000系列混合信号示波器高效调试嵌入式系统

    嵌入式系统调试,精准的信号捕获与分析是解决问题的关键。普源MSO5000系列混合信号示波器凭借其高性能参数与多功能集成特性,为工程师提供了高效调试
    的头像 发表于 11-13 11:57 426次阅读
    用普源MSO5000系列混合信号示波器高效<b class='flag-5'>调试</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    用是德MSO-X 3024T高效调试嵌入式系统的实战指南

    嵌入式系统开发,精准调试是攻克技术难题的关键。是德科技MSO-X 3024T示波器凭借其创新的触控交互与多功能集成设计,为嵌入式
    的头像 发表于 10-17 11:51 415次阅读
    用是德MSO-X 3024T高效<b class='flag-5'>调试</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的实战指南

    嵌入式达到什么水平才能就业?

    工具定位问题具备嵌入式软件模块化设计能力:能按功能划分代码模块,编写规范的头文件与源文件,实现模块间低耦合调用会使用Git 进行版本管理:能提交代码、解决冲突、回滚版本,熟悉敏捷开发流程
    发表于 09-15 10:20

    是德示波器MSOX3052T在嵌入式系统的应用

    在现代电子系统设计嵌入式系统已成为智能设备与物联网的核心。面对日益复杂的硬件架构与软件算法,调试工具的性能直接决定了产品开发周期与最终可
    的头像 发表于 08-27 17:38 798次阅读
    是德示波器MSOX3052T在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用

    嵌入式工程师为什么要学QT?

    Qt对嵌入式工程师来说,真的很重要吗? Qt是一个跨平台的C++应用程序开发框架,非常适合嵌入式系统的开发,Qt在嵌入式开发具有很重要的作
    发表于 08-14 15:15

    入行嵌入式应该怎么准备?

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/C++语言将使你能够理解和编写底层驱动程序、操作系统以及与硬件交互的代码。对于
    发表于 08-06 10:34

    嵌入式系统,FLASH 的程序代码必须搬到 RAM 运行吗?

    嵌入式系统里,FLASH 的程序代码并非必须搬到 RAM 运行,这得由硬件配置、实际性能需求和应用场景共同决定。就像很多低端单片机,无论
    的头像 发表于 08-06 10:19 1534次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>,FLASH <b class='flag-5'>中</b>的程序<b class='flag-5'>代码</b>必须搬到 RAM <b class='flag-5'>中</b>运行吗?

    泰克示波器 MSO58 混合信号示波器在嵌入式系统调试的核心技巧

    嵌入式系统的开发与调试,泰克示波器 MSO58 混合信号示波器凭借其强大的功能和灵活的特性,成为工程师不可或缺的调试利器。掌握其核心
    的头像 发表于 07-01 16:28 750次阅读
    泰克示波器 MSO58 混合信号示波器在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>调试</b><b class='flag-5'>中</b>的核心技巧

    普源示波器MSO5074在嵌入式系统联合调试的高效实践

    一、引言:嵌入式系统调试的挑战与示波器的必要性 嵌入式系统作为核心控制单元广泛应用于汽车、医疗设备、工业自动化等领域,其开发涉及硬件设计、软
    的头像 发表于 06-20 13:45 868次阅读
    普源示波器MSO5074在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>联合<b class='flag-5'>调试</b><b class='flag-5'>中</b>的高效实践

    嵌入式适合自学吗?

    构、时钟系统、电源管理、存储映射等。 嵌入式必学技术点↓↓↓ 1硬件与软件的结合 2实时性要求与资源限制 3跨领域知识整合 4调试与测试困难 二)缺乏专业指导 1)容易走弯路:自学嵌入
    发表于 04-27 09:54