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

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

3天内不再提示

如何在嵌入式C编码中规范变量

麦辣鸡腿堡 来源:嵌入式系统 作者:嵌入式系统 2023-12-07 14:42 次阅读

◎ 不用或者少用全局变量
说明:单个文件内部可以使用static的全局变量,可以将其理解为类的私有成员变量。全局变量应该是模块的私有数据,不能作用对外的接口使用,使用static类型定义,可以有效防止外部文件的非正常访问。直接使用其他模块的私有数据,将使模块间的关系逐渐走向“剪不断理还乱”的耦合状态,这种情形是不允许的。
◎ 避免局部变量与全局变量同名。
说明:尽管局部变量和全局变量的作用域不同而不会发生语法错误,但容易使人误解。
◎ 严禁使用未经初始化的变量。
◎ 明确全局变量的初始化顺序,避免跨模块的初始化依赖。
说明:系统启动阶段,使用全局变量前,要考虑到该全局变量在什么时候初始化,两者之间的时序关系,谁先谁后,一定要分析清楚,不然后果往往是低级而又灾难性的。
◎ 数据必须对外开放时,应封装接口函数来读写,同时注意全局数据的访问互斥。
说明:避免直接暴露内部数据给外部模型使用,是防止模块间耦合最简单有效的方法。
◎ 一个变量只有一个功能,不能把一个变量用作多种用途。
说明:一个变量只用来表示一个特定功能,不能把一个变量作多种用途,即同一变量取值不同时,其代表的意义也不同。
◎ 数据结构功能单一,不要设计面面俱到的数据结构。
说明:相关的一组信息才是构成一个结构体的基础,结构的定义应该可以明确的描述一个对象,而不是一组相关性不强的数据的集合。设计结构时应力争使结构代表一种现实事务的抽象,而不是同时代表多种。结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构体中。
◎ 尽量减少没有必要的数据类型默认转换与强制转换。
说明:当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化,而这些细节若考虑不周,就很有可能留下隐患。
示例:如下赋值,多数编译器不产生告警,但值的含义有变化。

char ch; 
unsigned short int exam;  
ch = -1;
exam = ch; // 编译器不产生告警,此时exam为0xFFFF。

◎ 确认未使用的变量应当删除。
◎ 对于变量自增++和自减--,禁止在宏定义中使用,禁止和其他语句复合,因拆分单独执行。示例:if(++i>10) 错误写法,必须改为i++;if(i>10)

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

    关注

    5082

    文章

    19104

    浏览量

    304815
  • 编码
    +关注

    关注

    6

    文章

    940

    浏览量

    54814
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49108
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28360
收藏 人收藏

    评论

    相关推荐

    嵌入式c语言编码规范

    `学习嵌入式的同学应该首先掌握嵌入式编码规范,这样才能更好的嵌入式系统。下面就从这几个方面讲解一下嵌入式
    发表于 10-31 14:50

    嵌入式c语言编码规范

    学习嵌入式的同学应该首先掌握嵌入式编码规范,这样才能更好的嵌入式系统。下面就从这几个方面讲解一下嵌入式
    发表于 11-07 15:17

    嵌入式Linux C代码规范

    本文档为作者 在嵌入式嵌入式 linux C语言的学习和工作中所总结的代码规范 ,是作者从 STM32单片机开发向 Linux C开发的时
    发表于 01-14 10:25

    (精彩帖子合集)国外大牛带你入门嵌入式C语言!

    语言学习文章,大家循序渐进,必定能够学有所成! 嵌入式应用程序的C编程语言简介了解C编程变量了解C
    发表于 09-09 16:09

    WIFI网卡如何在嵌入式Linux

    仅用于增加百度收录权重,排版未优化,日常不维护。请访问: 查看、评论。本博文对应地址: 嵌入式Linux——WIFI网卡/#more如何在嵌入式Linux,使用WIFI无线网卡。
    发表于 11-04 08:26

    嵌入式C的静态变量是什么

    不是持续长久的,当程序使用完后,系统会自动删除回收在嵌入式系统,为了追求项目的可靠性,因此会较常使用静态变量。静态变量的基本划分静态变量
    发表于 12-15 07:08

    嵌入式C开发变量类型的使用方法

    了所以嵌入式编程中经常会使用char定义变量,注意:char只能表示-128到127,unsigned char可以表示0到255。下面是嵌入式常用的typedef定义的数据类型typedef...
    发表于 12-15 06:35

    何在嵌入式设备上运行高性能Java

    何在嵌入式设备上运行高性能Java
    发表于 03-28 09:43 16次下载

    嵌入式DHCP Server如何在vxWorks

    嵌入式DHCP Server如何在vxWorks的软件实现
    发表于 03-29 12:27 23次下载

    嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍

    嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍 ARM嵌入式开发基础 对话微软MVP:走进
    发表于 04-14 07:24 1641次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>实现延时程序的不同<b class='flag-5'>变量</b>的区别 几种Linux<b class='flag-5'>嵌入式</b>开发环境的简单介绍

    嵌入式系统的规范发展回顾

    后PC时代,嵌入式系统的发展风起云涌,波澜壮阔。在这一历史洪流,众多的嵌入式系统规范争奇斗艳,各种嵌入式板卡令人眼花缭乱。伴随着极大量标准
    发表于 02-14 14:00 1649次阅读

    嵌入式代码之编写规范

    嵌入式代码编码规范,用于规范自己的代码,增强可读性,非标准规范。最好能强制自己形成良好的编码风格
    的头像 发表于 04-26 15:21 5273次阅读

    嵌入式软件之c语言编码规范

    嵌入式软件之c语言编码规范
    发表于 10-28 18:13 28次下载

    嵌入式Linux环境变量分区制作

    嵌入式Linux环境变量分区制作嵌入式环境变量分区准备一个存放环境变量的文本文件制作环境变量的工
    发表于 11-02 10:35 8次下载
    <b class='flag-5'>嵌入式</b>Linux环境<b class='flag-5'>变量</b>分区制作

    嵌入式C编程全局变量问题分享

    嵌入式特别是单片机os-less的程序,最易范的错误是全局变量满天飞。这个现象在早期汇编转型过来的程序员以及初学者中常见,这帮家伙几乎把全局变量当作函数形参来用。
    发表于 07-17 16:53 735次阅读