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

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

3天内不再提示

嵌入式系统开发的注释和调试代码

星星科技指导员 来源:嵌入式计算设计 作者:Colin Walls 2022-07-01 09:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式系统开发软件需要时间——通常比最初预期的要多。

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

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

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

文档——代码中的注释

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

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

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

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

文档

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

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

临时代码删除

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

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

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

poYBAGK-UJCAMQwNAABSx6SLl5E799.png

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

调试/跟踪代码

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

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

poYBAGK-UJiAGl8JAAB058cer_Q934.png

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

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

poYBAGK-UJ6AIHqOAABsiJtyfsA217.png

这个双重否定看起来很笨拙,但是这个符号用于控制标准的assert()宏。程序员需要定义符号来抑制调试模式。我感谢 Michael Barr,他在嵌入式 C 编码标准中提高了我对这种方法的认识。

审核编辑:郭婷

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

    关注

    5188

    文章

    20176

    浏览量

    329270
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76735
  • 编译器
    +关注

    关注

    1

    文章

    1670

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从小白到大牛:Linux嵌入式系统开发的完整指南

    从小白到大牛:Linux嵌入式系统开发的完整指南 一、小白入门:搭建 Linux 嵌入式开发的认知地基​ 对于零基础学习者,首先要打破 “嵌入式开发高深莫测”的误区。Linux
    发表于 12-16 10:42

    使用xmake+zig更优雅的进行嵌入式系统开发

    引言在嵌入式系统开发领域,构建工具的稳定性与可维护性对项目长期发展至关重要。嵌入式项目通常需要针对不同硬件平台进行交叉编译,每个平台都需要依赖特定的构建工具链,环境搭建复杂。随着LLVM工具链的普及
    的头像 发表于 11-30 10:04 3883次阅读
    使用xmake+zig更优雅的进行<b class='flag-5'>嵌入式</b><b class='flag-5'>系统开发</b>

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

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

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

    混合信号示波器,凭借其创新的硬件架构与智能分析功能,为嵌入式系统调试提供了全新的解决方案。本文将从技术特性、应用场景及实战案例三个维度,深入探讨该示波器在嵌入式
    的头像 发表于 08-27 17:38 514次阅读
    是德示波器MSOX3052T在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中的应用

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

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

    明远智睿SSD2351:开启嵌入式系统开发新时代

    在当今科技飞速发展的时代,嵌入式系统已经广泛应用于各个领域,从智能家居到工业自动化,从智能交通到医疗设备,嵌入式系统无处不在。而开发板作为
    的头像 发表于 07-15 15:47 416次阅读

    明远智睿SSD2351:嵌入式系统开发的卓越之选

    嵌入式系统开发这一充满挑战与机遇的领域,一款出色的开发板就如同开发者手中的利器,能助力他们披荆斩棘,创造出令人惊叹的成果。明远智睿SSD2351便是这样一款集性能、功能与易用性于一身
    的头像 发表于 07-15 15:46 462次阅读

    嵌入式软件开发常用的软件有哪些?

    文档等非常方便,因为它查找,定位,彩色显示等功能非常强大。开发人员会当成源代码阅读工具使用。 4. Keil uVision5 Keil 5 软件是一款功能强大的嵌入式系统开发工具
    发表于 07-03 17:06

    泰克MSO2024B混合信号示波器在嵌入式系统开发中的应用

    随着嵌入式系统设计的复杂度不断提升,工程师在调试和验证过程中面临着越来越多的挑战。混合信号示波器(MSO)作为集成了模拟信号与数字信号分析功能的测试工具,为嵌入式
    的头像 发表于 06-16 15:40 598次阅读
    泰克MSO2024B混合信号示波器在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统开发</b>中的应用

    STM32开发入门进阶必备!《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》新书发布!

    近日,由华清远见教育科技集团精心编撰的教育部高等学校电子信息类专业教学指导委员会规划教材、普通高等教育电子信息类专业系列教材——《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》重磅
    的头像 发表于 04-03 14:54 1384次阅读
    STM32<b class='flag-5'>开发</b>入门进阶必备!《STM32<b class='flag-5'>嵌入式</b><b class='flag-5'>系统开发</b>—基于STM32CubeMX和HAL库》新书发布!

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、
    发表于 03-12 13:58

    BlackBerry QNX推出通用嵌入式开发平台

    Platform,GEDP),这一全新平台旨在加速机器人、医疗和工业自动化等通用嵌入式行业的高性能、可扩展、网络信息安全的系统开发
    的头像 发表于 03-11 16:04 965次阅读

    嵌入式系统中的代码优化与压缩技术

    在当今数字化时代,嵌入式系统广泛应用于各个领域,从智能家居设备到工业控制系统,从汽车电子到可穿戴设备,它们无处不在。而在嵌入式系统开发中,
    发表于 02-26 15:00

    如何提高嵌入式代码质量?

    嵌入式代码的质量是至关重要的。本文将探讨如何通过有效的开发方法和工具来提高嵌入式代码的质量,以确保系统
    发表于 01-15 10:48

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要
    发表于 12-20 15:29