C语言规范总结一:代码编写规范

2023-11-05

目录

代码换行:

缩进:

{}使用:

空格使用:

空行的使用:

注释的使用:    

goto的使用:    

==(!=)使用:

switch的使用:

代码移植,修改:


代码换行:


    1,满120 换行
    2,逗号,操作符后换行
    3,换行与与上一行对应级别对其

 


缩进:


    函数,结构体,枚举,逻辑语句缩进4空格(禁用bc tab)

    注释:垂直对齐

 

{}使用:

    1,逻辑语句任何情况都要{}包含
    2,独占一行,且前后对齐

 

空格使用:

    1,关键字后(加空格
    2,逗号加空格
    3,双目操作符除. ,->后都要空格
    4,"!"、"~"、"++"、"--"、"&"等单目操作符前后不加空格
    5,for条件内分号加空格
    6,强制类型转换后加空格
    7,括号内,多重()可不加空格
    8,禁用连续两个空格
    9,代码尾行无其它字符(给编译移植造成困难)

 

空行的使用:


    
    目的:分割代码
    1,函数之间
    2,局部变量定义与可执行语句
    3,独立程序块{}
    


注释的使用:
    


    作用:补充说明,解释代码使用,功能,含义,注意事项
    注释位置:上或右
    1,/**/可用   //不可用
    2,短注释在该代码行后,保持距离,垂直对其
    3,长注释在代码前,与前面代码隔一行,与对应代码同缩进
    4,注释行/总代码行 >= 20%
    5,更新代码同时更新注释,废弃代码,注释需删除
    6,声明的物理变量,常量,命名不充分注释,需加注释
    7,数据结构声明没有自注释,需添加注释
    8,全局变量需详细的注释,包括功能,取值范围,涉及那些函数或存取过程, 存取注意事项
    9,不要再函数内插入注释
    10,代码维护的注释记录要求
         single:opera + name + date + des + id
        Mult:start/end + opera + name + date + des + id
    11,分支语句加注释
    12,禁用简单重复注释(需要结合功能进行注释)
    13,允许中,英,优选中
    14,接口说明注释,按照doxygen javadoc格式来描述,以便工具自动化生成接口文档

 

goto的使用:
    


    1,不建议用
    2,只能向前goto

    


==(!=)使用:


    
    1,常量在左,变量(或返回值)在右
    2,区分'=='与'=', 常量 = 变量(err)
    


switch的使用:

 

    1,case语句使用{}
    2,case中没有break加注释
    3,必加 default ,属于异常分支则加断言
    


代码移植,修改:


    1,依据原风格
    2,新增代码放在尾部
    3,删除代码 if 0

 

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

C语言规范总结一:代码编写规范 的相关文章

  • Gitlab Custom_hooks集代码规则&注释校验脚本(pre-receive)

    bin bash 脚本提供功能 Commit提交的Message和代码规范是否符合统一规范 分三个部分 1 变量定义部分 2 校验部分 注释校验 代码分析 3 初始化入口 校验流程 1 先做提交注释校验 校验的规则 是否已 TYPE LIS
  • 一款好用的软件成分分析及同源漏洞检测工具(COBOT SCA)

    北大库博软件成分分析与同源漏洞检测工具 CoBOT SCA 是基于代码大数据 相似哈希等技术 研发的新一代代码同源分析系统 面向组织的第三方库检测需求 在不改变组织现有开发 测试流程的前提下 与源代码管理系统 Git SVN等 缺陷管理系统
  • 三款好用的软件代码检测工具

    Fortify 是一款由 Hewlett Packard Enterprise HPE 公司开发的源代码检测工具 Fortify可以检测代码中的安全漏洞和缺陷共900多种 它通过对应用程序的源代码进行静态分析 自动检测安全性漏洞及缺陷 Fo
  • Source Insight (SI) 变量、函数、宏定义变成黑色,无法快速查看调用的几种解决方法

    Source Insight 变量 函数 宏定义变成黑色 无法快速查看调用的几种解决方法 方法一 同步SI与本地的代码 方法二 重构SI工程 其他解决方法 在source insight中 一般即使鼠标点在函数或者变量处 context w
  • 垃圾代码是如何写出来的

    自我参加工作已经有几年了 接手过的项目也不少 包括安卓端和web前端的 在做这些项目的过程中 相当一部分的项目到最后都出现了一个现象 代码越写越乱 维护性越来越差 究其原因 我认为有如下几点 1 程序员自身能力 出现问题 首先得从自己身上找
  • IDEA常用插件之代码规范检查

    Alibaba Java Coding Guidelines 安装 使用 手动扫描 这里扫描可以扫描某一个类 某一个包 整个项目都支持 扫描结果 实时扫描 开启实时扫描在代码编写过程中也会实时提醒
  • C语言代码规范

    1 排版 1 1 程序块要采用缩进风格编写 缩进的空格数为4个 1 2 相对独立的程序块之间 变量说明之后必须加空行 1 3 较长的语句 gt 80字符 要分成多行书写 长表达式要在低优先级操作符处划分新行 操作符放在新行之首 划分出的新行
  • Google Cloud API设计指南

    目录 一 基于资源的设计 什么是 REST API 设计流程 资源 方法 示例 Gmail API Cloud Pub Sub API Cloud Spanner API 二 资源名称 完整资源名称 相对资源名称 资源 ID 集合 ID 资
  • 优雅的代码命名规范,代码如诗

    优雅的代码命名规范 管理类命名 传播类命名 回调类命名 监控类命名 内存管理类命名 过滤检测类命名 结构类命名 常见设计模式命名 解析类命名 网络类命名 CRUD命名 其他 END 日常编码中 代码的命名是个大的学问 能快速的看懂开源软件的
  • 《代码之丑》——专栏笔记

    一 如何精确命名 错误1 命名过于宽泛 命名过于宽泛 不能精准描述 这是很多代码在命名上存在的严重问题 也是代码难以理解的根源所在 data info flag process handle build maintain manage mo
  • 我见过的最糟糕代码

    作者 Mehdi Zed 在本文 将向读者展示一些作者见过的一些最糟糕的代码 除非你希望被同事和用户讨厌 否则这些 魔鬼 永远都不应该被放到人间 我们会发现 通过一些好的实践 其实很容易避免它们 01 魔鬼代码 需要改进的代码与所谓的 魔鬼
  • Jenkins代码规范集成(Findbugs,PMD,checkstyle,)

    Findbugs 检索性能缺陷及逻辑问题 Findbugs只能找出JAVA的逻辑问题 常见的问题类似空指针 忽略返回值等 PMD 检测类似开启未关闭 未用的变量等问题 一般不涉及逻辑 注重每个变量 checkstyle 检测代码格式 这里一
  • 阿里Java代码规范

    代码规范 一 编程规约 一 命名风格 二 常量定义 三 代码格式 四 OOP 规约 五 集合处理 六 并发处理 七 控制语句 八 注释规约 九 其它 二 异常日志 一 异常处理 二 日志规约 三 单元测试 四 安全规约 五 MySQL 数据
  • SQL书写规范/SQL编码规范,这一篇就够了

    SQL代码规范 SQL Structured Query Language 结构化查询语言 在数据分析 数据开发 数据库 大数据等的领域 具有不可或缺的地位 运用十分广泛 规范化的SQL代码 能够提高代码的可读性 有利于快速定位问题 更有利
  • 版本发布规范

    版本发布命名规范 版本命名规范 软件版本号有四部分组成 第一部分为主版本号 第二部分为次版本号 第三部分为修订版本号 第四部分为日期版本号加希腊字母版本号 希腊字母版本号共有五种 分别为base alpha beta RC release
  • C语言总结规范二:变量

    目录 基本数据类型 复杂数据类型 变量的前缀 变量命名 类型转换 移位 变量 常量 标识符命名 基本数据类型 基本类型使用宏定义替换 复杂数据类型 书写规范 命名区分 后缀增加类型说明 统一格式命名 成员过多则进行拆分成子结构 合理安排元素
  • 【绝㊙️】三年开发内功心得

    经典嵌套if else问题 这个也是老生常谈问题了 不管哪里都能看到 那如何解决 方法一 重要 如果逻辑分支过多 即使你不解决嵌套if slse 至少也要把每个 if的 里的逻辑抽到一个独立的方法或者工具类或者策略模式类 保证 里只有一行或
  • SonarQube白盒静态代码专家解决方案

    中国区官网 http www safetesting cn 西安青穗 http www safetesting cn 是瑞士SonarSource公司正式授权的中国渠道商和技术服务提供商 技术服务团队有多年行业经验的业界专家 咨询顾问组成
  • 代码检视拟定方案(已完成,非代码博文,开发流程相关)

    代码检视拟定方案 为什么要进行代码检视 提前发现代码逻辑问题 优秀的代码分享 坏味道代码警示 要求别人的同时提高对自己的要求 性能初步检查 抽象组件 函数沉淀 常量抽取 设计模式引入 解决代码审查消耗大量时间精力问题 结对编程 利于双方代码
  • 后台-husky提交代码规范使用

    husky是一个git hook工具 可以帮助我们触发git提交的各个阶段 pre commit commit msg pre push 1 如何使用husky呢 npx husky init npm install Windows安装不成

随机推荐

  • vue项目中使用echarts做词云图

    效果图 安装依赖 npm install echarts npm i echarts wordcloud 完整代码
  • Android国际化多语言切换

    关于App国际化 之前有讲到国际化资源 字符换 布局相关 想要了解的猛戳用力抱一下APP国际化 借着本次重构多语言想跟大家聊一下多语言切换 多语言切换对于一款国际化App来讲是重中之重 并非难事 但是若要做好也是一件不容易的事情 问题 An
  • react 中的计算属性 useMemo

    介绍 本篇文章主要是讲解以下 useMemo的正确用法 你们没有看错 useMemo的出现使得react也有了 计算属性 为什么要使用计算属性 其实主要优势就是性能好 通过下面例子可以看出 比较计算属性与普通函数 使用函数完成计算功能 im
  • MySQL安装详细教程!!!

    安装之前 先卸载你之前安装过的数据库程序 否则会造成端口号占用的情况 1 首先下载MySQL MySQL Download MySQL Community Server 下载路径 2 下载版本不一样 安装方法略有不同 版本5的安装基本一致
  • 手欠,给DELL R720加硬盘

    公司有一台比较旧的dell R720服务器 只上了一块15K 300G的硬盘 阵列卡H310M 让采购买了一块4T sata硬盘 因为原来系统上有重要数据 一直没敢动 昨天晚上一狠心直接插上了 什么也不用设置 直接进系统提示发现新硬盘 格式
  • springboot默认日志log,控制台不打印mybatis sql执行日志解决办法

    增加配置 logging level com XXX mapper debug
  • 5.模型训练

    参考PyTorch深度学习快速入门教程 绝对通俗易懂 小土堆 P25 33 现有网络模型的使用及修改 官方文档 以VGG16为例 pretrained True时是已经在ImageNet数据集上训练好的 需要先安装scipy库才能使用Ima
  • 官方 gpt3.5, gpt4.0、github copilot chat、gpt3.5 api、gpt4 api 对比

    这是 进击的Coder 的第 848 篇技术分享 作者 刘志军 来源 Python 之禅 阅读本文大概需要 9 分钟 gpt4 的智能程度大于 gpt3 5 毫无争议 但是 OpenAI 提供的 GPT3 5 API 能力是否和官方的 GP
  • 函数覆盖与函数隐藏

    derive cpp 定义控制台应用程序的入口点 include stdafx h include
  • 光敏电阻控制led亮度程序_单片机开发系统学习LED亮度控制原理

    早期控制LED亮度的方法一般是采用模拟电路来调节LED的工作电流来实现 这种方式灵活性较差 很难达到智能控制的效果 本文将介绍如何通过一个普通MCS51单片机来产生PWM信号 达到调节LED的亮度的目的 一 硬件的简单介绍 该实验在 ME3
  • Python包

    视频版教程 Python3零基础7天入门实战视频教程 对于一个需要实际应用的模块而言 往往会具有很多程序单元 包括变量 函数和类等 如果将整个模块的所有内容都定义在同一个Python源文件中 这个文件将会变得非常庞大 显然并不利于模块化开发
  • VScode配置Python开发环境

    一 下载安装 1 VScode的安装包 Visual Studio Code Code Editing Redefined 2 Python的安装包 Download Python Python org 安装细节我之前也写了篇 请见我的py
  • Java开发工程师有必要转型大数据吗?

    大数据涉及到数据的采集 整理 传输 存储 分析到呈现 涉及到很多岗位和不同的人员配置 很多不同的专业人才都可以参与到大数据行业 这其中有大量的Java程序员考虑从事大数据方面的研发 个人认为 Java程序员从事大数据开发还是有一定优势的 不
  • Android VLC播放器二次开发2——CPU类型检查+界面初始化

    上一篇讲了VLC整个程序的模块划分和界面主要使用的技术 今天分析一下VLC程序初始化过程 主要是初始化界面 加载解码库的操作 今天主要分析一下org videolan vlc gui MainActivity类 这个是VLC的整个程序入口
  • Java 操作visio

    int visCmdFilePrint 1010 try return Dispatch call oActiveX DoCmd visCmdFilePrint toInt boolean tVisible true ActiveXComp
  • 错误: 找不到或无法加载主类.........

    今天遇到一个很郁闷的问题 我自己手写了一个简单的java类的测试 但是Run as Java Application 时 却报一个错误说 找不到或无法加载类 找了半天问题 最后解决的办法是 点击项目文件夹选择Build Path gt Co
  • 不确定性

    不确定性产生的原因 信息不完全 来源不一致 表述不精确 内容具有变化性等 不确定性可以是某个量 某种结构等 涉及到的概念 1 概率的本质 概率就是一个理论上无限次的试验序列的属性 而不是单一事件的属性 在试验总体未知的情况下 或者没有充足的
  • 【915程序设计】18西交大软件专硕915程序设计真题讲解

    1 数字统计 include
  • 主板bios开启虚拟化支持

    Inter和AMD生产的主流CPU都支持虚拟化技术 但很多电脑或主板BIOS出厂时默认禁用虚拟化技术 某些比较老的CPU是不支持虚拟化技术 要确定其电脑CPU是否支持虚拟化技术 可以在 5分享 镜像 虚拟机下载检测工具 1 打开虚拟化检测工
  • C语言规范总结一:代码编写规范

    目录 代码换行 缩进 使用 空格使用 空行的使用 注释的使用 goto的使用 使用 switch的使用 代码移植 修改 代码换行 1 满120 换行 2 逗号 操作符后换行 3 换行与与上一行对应级别对其 缩进 函数 结构体 枚举 逻辑语句