读华为C语言编程规范(标识符、变量)

2023-05-16

标识符:

命名规则:unix like风格,单词小写,用‘_’分割,text_mutex; windows风格,大小写混用,单词连一起,每个单词首字母大写。

原则:

1、命名清晰、明了、使用完整单词或大家基本理解的缩写,避免产生误解;

2、除常见通用缩写外,不使用单词缩写,不使用汉语拼音;

规则:

1、产品/项目内应保持统一的命名风格;

2、用正确的反义词组命名具有互斥意义的变量或相反动作的函数等;

3、避免名字中出现数字编号,除非逻辑上确实需要编号;

4、标识符前不应添加模块、项目、产品、部门的名称作为前缀;

5、平台/驱动等适配代码的标识符风格保持和平台.驱动一致;

6、重构/修改部分代码时,应保持和原有代码的命名风格一致;

7、文件命名统一采用小写字符;

8、全局变量前加“g_”前缀;静态变量前“S_”前缀;

9、禁止使用单字节命名变量;

10、不建议使用匈牙利命名法;

11、使用名词或形容词+名词方式命名变量;

12、函数命名应以函数需要执行的动作命名,一般采用动词或者动词+名词的结构;

13、函数指针除了前缀,其它按照函数命名规则命名;

14、对于数值或者字符串等常量定义,建议采用全大写字母,单词之间增加"_"下划线,#define PI_ROUND 3.14

15、除了头文件或者编译开关等特殊标识定义,宏定义不能使用下划线'_'开头和结尾;

变量

原则:

1、一个变量只有一个功能,不能把一个变量用作多种用途;

2、结构功能单一,不要设计面面俱到的数据结构。相关的一组信息才是构成一个结构体的基础,结构的定义可以明确的描述一个对象,而不是一组相关性不强的数据的集合;

3、不用或者少用全局变量;

规则:

1、防止局部变量和全局变量同名;

2、通讯过程中少用的结构,必须注意字节序;跨平台交互,数据成员发送前,都必须进行主机序到网络序的转换,接收时,也必须进行网络序到主机序的转换;

3、严禁使用未经初始化的变量作为右值;

建议:

1、构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数之访问的全局变量,防止多个不同模块或函数都可以修改、创建同一个全局变量的现象;

2、使用面向接口编程思想,通过API访问数据;如果本模块的数据需要对外部模块开放,应提供接口函数来设置、获取,同时注意全局数据的访问互斥;

3、在首次使用前初始化变量,初始化的地方离使用的地方越近越好;

4、明确全局变量的初始化顺序,避免跨模块的初始化依赖;

5、尽量减少没有必要的数据类型转换,默认或是强制的。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读华为C语言编程规范(标识符、变量) 的相关文章

  • 用pyinstaller打包python遇到的坑

    最近写了一个小程序 xff0c 用到了pandas xff0c matplotlib模块 xff0c 打包时出现各种问题 xff0c 总结下走过的坑 因为之前使用openpyxl写过一个更简单的程序 xff0c 仅用来读写excel xff
  • 8D报告组成部分

    8D问题解决法 xff08 Eight Disciplines Problem Solving xff0c 缩写 xff1a 8D xff09 也称为团队导向问题解决方法或8D report xff0c 是一个处理及解决问题的方法 xff0
  • 高通cDSP介绍汇总

    Qualcomm Hexagon Compute DSP cDSP 是高通平台上专门用来做通用计算的硬件加速单元 xff0c 与主机 CPU 相比 xff0c DSP 通常以较低的时钟速度运行 xff0c 并提供更多的并行指令级 这使得 D
  • PCB拼板方式

    Pcb拼板方式一般有三种 xff1a V割 V CUT 邮票孔以和空心连接条 PCB拼板方式 V割 V割 xff0c 又称V CUT xff0c 在规则板中使用较多 V割是在两个板子的连接处画一个槽 xff0c 只要将两个板子拼在一起 xf
  • 车联网名词缩写含义

    TSP xff1a Telematics Service Provider xff1b DSRC xff1a 专用短程通信技术是一种新型的技术 xff0c Dedicated Short RangeCommunication DSRC xf
  • 质量管理PPAP说明

    PPAP是英文Production Part Approval Process的缩写 xff0c 中文翻译为生产件批准程序 PPAP是TS16949质量管理体系五大工具之一 xff0c 用于汽车整车或零部件生产过程的质量管控 各种质量管理类
  • Vlookup最经典的10种用法

    该函数的语法规则如下 xff1a VLOOKUP lookup value table array col index num range lookup 参数 简单说明 输入数据类型 lookup value 要查找的值 数值 引用或文本字
  • 宝马项目化流程标准(BMW ABC flyer requirement)

    ABC flyer BMWQMT build phase requirement 宝马的项目流程标准叫做ABC flyer 也叫QMT build phase requirement 为什么叫这么名字 xff0c 是因为宝马项目的产品零件分
  • 数字无线广播(DAB、DRM)

    1 什么是数字广播 数字化技术指的是运用0和1两位数字编码 xff0c 通过电子计算机 光缆 通信卫星等设备 xff0c 来表达 传输和处理所有信息的技术 数字化技术一般包括 数字编码 数字压缩 数字传输 数字调制 与解调 等技术 所谓的数
  • 什么是IPD管理体系?

    集成产品开发 xff08 Integrated Product Development 简称IPD xff09 是一套产品开发的模式 理念与方法 源于美国PRTM公司出版的 产品及生命周期优化法 一书 最具有代表实践者有IBM和华为 IPD
  • 全球整车开发流程(GVDP)

    整车开发流程用于整车开发的管理控制 xff0c 其中换代开发 换型开发 年度改型开发和变型开发可以根据所开发产品的特点或资源环境需求 产品开发流程图 产品开发参考周期 如下 xff1a 1 平台项目 开发全新的车型平台 xff0c 采用全新
  • DataFrame 切片取值

    基本格式 xff1a dataframe 列名 1 取多列 列名要用中括号括起来 xff0c 所以下述命令 dataframe P4 profit rate P3PS P3NS 没问题 返回pandas core frame DataFra
  • APQP(advanced product quality planning先期产品质量策划)

    APQP xff08 advanced product quality planning先期产品质量策划 xff09 xff0c 圈子里面无论是做研发 做项目还是做SQE的都不陌生 xff0c 很多时候 xff0c 尤其是SQE会比较困惑
  • 8D和A3报告

    8D和3A报告 xff0c 他们都不仅仅是记录问题的一种文书 xff0c 而是解决问题的工具 A3发展于TPS xff08 Toyota Production system xff09 xff0c 可以用来解决问题 xff0c 沟通 xff
  • Ubuntu出现包依赖错误的解决方法

    大家在使用apt get安装软件时经常会出现这种包依赖错误 这主要是因为apt get的源中没有所要安装的package的依赖包 主要有以下两种解决方案 xff1a xff11 将CD加入Ubuntu的apt get源 参见我的另一篇博客
  • stm32 类型转换

    stm32怎么把uint8 t类型转换成int类型 可以使用强制类型转换 xff1a int n 61 int uint8 t 参考例子 xff1a include lt stdio h gt int main void uint8 t a

随机推荐

  • C语言不带头结点链表创建,删除,插入总结

    一 创建链表 1 第一种创建链表的方法 xff0c 注意对比和第二种创建链表的细微之处 xff0c typedef struct mynode int num float score struct mynode next Node Pnod
  • http协议基本认证 Authorization

    http协议是无状态的 xff0c 浏览器和web服务器之间可以通过cookie来身份识别 桌面应用程序 比如新浪桌面客户端 xff0c skydrive客户端 跟Web服务器之间是如何身份识别呢 xff1f 阅读目录 什么是HTTP基本认
  • Java 中大小端 int 与 byte 数组转换

    1 小端模式转换 1 1 int 转 byte 数组 xff0c 低位在前 xff0c 高位在后 将int数值转换为占四个字节的byte数组 xff0c 本方法适用于 低位在前 xff0c 高位在后 的顺序 和bytesToInt xff0
  • 无人机/FPV穿越机航模的遥控器/接收机等配件厂商

    本人最近迷恋上了穿越机 整理一些资料 xff0c 方便后来人学习 有其他更新资料 xff0c 欢迎留言 xff0c 争取打造成好的工具书 新手入门可以看百科 xff1a http wiki fpvbang com 穿越机电子系统表 xff1
  • FPV穿越机一启动就加速翻滚(死亡翻滚)解决办法

    最近不是开始入坑穿越机吗 xff0c 买了一个moblite7玩玩 xff0c 碰到了这个问题 大家在购买其他穿越机 xff0c 或者自组穿越机 xff0c 还有重置了穿越机的设置好 也很有可能碰到问题 xff0c 我把自己搜索并解决这个问
  • Python读取Microsoft Access Database

    公司有一个小零件进出库管理系统 xff0c 数据库是使用Microsoft Access Database xff0c 因长期存储会有生锈问题 xff0c 导致零件报废 因此基于原数据的进库出库在库数据 xff0c 做一个python脚本
  • Android13 新特性和开发适配须知

    前言 目前 Google 已经发布了 Android 13 的正式版 xff0c 虽然国内的手机能用上 Android 13 还有一段时间 xff0c 不过开发者们可以通过模拟器来体验 xff0c 那么我们来看看 Android 13 都有
  • ./configure 的配置和用法

    Linux环境下的软件安装 xff0c 并不是一件容易的事情 xff1b 如果通过源代码编译后在安装 xff0c 当然事情就更为复杂一些 xff1b 现在安装各种软件的教程都非常普遍 xff1b 但万变不离其中 xff0c 对基础知识的扎实
  • JDK1.8(jdk8.0)新特性

    Java is still not dead and people are starting to figure that out 本教程将用带注释的简单代码来描述新特性 xff0c 你将看不到大片吓人的文字 一 接口的默认方法 Java
  • MQTT协议通俗讲解

    参考 Reference 协议文档 Offical Docs v3 1 1 英文原版 中文翻译版 其他资源 网站 MQTT官方主页 Eclipse Paho 项目主页 测试工具 MQTT Spy xff08 基于JDK xff09 Chro
  • mqtt实现库对比

    发现一片非常好的文章 xff0c 从17个方面 xff0c 介绍几个分布式消息队列系统 xff0c 非常棒的内容 xff0c 方便做技术选型 xff0c 平衡各种 xff1a 17 个方面 xff0c 综合对比 Kafka RabbitMQ
  • 几种直播流媒体协议

    题外话 xff1a HTTP渐进下载流媒体播放 基于TCP yy 乐视 爱奇艺 优酷土豆 搜狐视频 花椒直播 xff0c 主要还是通过rtmp amp hls来实现的 xff0c 但他们也意识到rtmp的天生缺陷 xff0c 所以不管是技术
  • Android9.0(androidP)系统API和行为变化

    这篇文章 xff0c 是Android官方文档的中文版本 注意事项 xff08 AndroidP 特性 xff09 xff1a 1 android os Build VERSION RELEASE xff0c 需要当做字符串类型处理 2 依
  • Android version名称,版本号,API level,代号 表(updateing)

    系统版本OS Version 版本号API level 发布日期release Date 发布代号nick Name 主要特性feature android1 0 API1 2008 10 android1 1 API2 2009 2 an
  • Android10.0(Q)新特性和行为变更

    Android Q 还为开发者们带去了许多新功能 xff0c 如折叠屏增强项 新网络连接 API 全新的媒体解码器 摄像头新功能 NNAPI 扩展 Vulkan 1 1 图形支持等等 2019 4 Beta2版本发布 点击查看Google官
  • JNI 使用案例详解(一)

    很久没有写博客了 xff0c 今天来写一下关于在android开发过程中使用JNI的详细案例及操作步骤 首先 xff0c JNI xff0c 我的理解 xff0c 他就是java和C之间的桥梁 xff0c 很多写C 43 43 和JAVA的
  • Echarts添加鼠标点击事件

    1 通常我们只使用了以下代码 xff0c 通过配置项和数据显示图表 var myChart 61 echarts init document getElementById 39 tree chart 39 myChart setOption
  • linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制

    ulimit命令查看和更改系统限制 ulimit命令详解 ulimit用于shell启动进程所占用的资源 xff0c 可以用来设置系统的限制 语法格式 ulimit acdfHlmnpsStvw size 在 etc security li
  • c++ http服务器客户端程序-传输json解析json数据(2)

    1 服务器端的实例 xff1a include 34 stdafx h 34 include lt iostream gt include lt chrono gt include lt cstdio gt include 34 httpl
  • 读华为C语言编程规范(标识符、变量)

    标识符 xff1a 命名规则 xff1a unix like风格 xff0c 单词小写 xff0c 用 分割 xff0c text mutex windows风格 xff0c 大小写混用 xff0c 单词连一起 xff0c 每个单词首字母大