【C语言】C语言代码的编写规范、注释规范

【C语言】C语言代码规范


### 文章目录

  • [@[TOC](文章目录)](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [前言](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [一、编写规范](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [a、MISRA-C](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [1、背景与目的](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [2、发展历程](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [3、准则内容](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [4、应用与优势](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [b、华为](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [二、注释规范](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [1.文件头注释](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [2.函数头注释](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [3.代码行注释](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [4.特殊注释](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [三、参考资料](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)
  • [总结](#文章目录 @TOC 前言 一、编写规范 a、MISRA-C 1、背景与目的 2、发展历程 3、准则内容 4、应用与优势 b、华为 二、注释规范 1.文件头注释 2.函数头注释 3.代码行注释 4.特殊注释 三、参考资料 总结)

前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、编写规范

a、MISRA-C

MISRA-C工业标准的C编程规范(中文版).pdf

MISRA-C是由汽车工业软件可靠性协会(Motor Industry Software Reliability Association,MISRA)制定的一套针对C语言的编码准则,以下是对MISRA-C的详细介绍:

1、背景与目的

背景 :MISRA最初为汽车行业开发了这些规范,用于提升汽车制造业中嵌入式代码的安全性、可靠性。
目的:减少代码中的错误,提高代码的可读性、可维护性和可靠性,确保代码在不同的编译器和平台上的可移植性。

2、发展历程

MISRA先后发布了三版编码准则,分别是MISRA C:1998、MISRA C:2004和MISRA C:2012。其中,MISRA C:2012(第三版,第一次修订版)发布于2019年2月,整合了此前发布的AMD1(修订案1,MISRA C:2012的附加安全准则)和TC1(技术更正1)的内容,并后续经过修订。

3、准则内容

MISRA-C规范包含了一系列关于C语言编码的规则和指导,这些规则旨在规范诸如类型转换、指针使用、内存分配、代码风格等方面的编程实践。

MISRA C:2012规定了一个C语言的子集,共有175条编码准则(guideline),分为指令(directive)和规则(rule)两部分:

指令 :共17项,不具备完整描述,仅分析源代码无法进行合规性判定,需要结合设计文档或开发人员经验综合判定。指令均为不可判定。
规则 :共158条,具备完整的描述和要求,无需额外的信息就可以对源代码进行合规性判定。规则分为可判定或不可判定。

此外,准则有三种分类,分别是Mandatory(强制性准则,绝对不允许违反)、Required(要求性准则,只有符合MISRA对偏差的要求时才允许违反)和Advisory(建议性准则,只需在合理的范围内遵循,无需符合正式偏差,若不遵循应做好记录)。准则的作用域分为"单一翻译单元"和"系统"。

4、应用与优势

应用领域 :虽然MISRA-C最初是为汽车行业设计的,但现已成为其他行业(如航空航天、医疗设备和铁路系统)的编码标准。
优势:遵循MISRA-C规范可以降低软件缺陷的风险,提升代码的可靠性、可读性、可移植性和可维护性。同时,它还有助于预防缺陷的产生,减少因软件问题而导致的召回和损失。

b、华为

华为C语言编程规范 PDF

二、注释规范

1.文件头注释

c 复制代码
/*
* File: example.c
* Author: Abin
* Date: 2023-03-01
* Description: This file contains an example of C code.
* Version: 1.0
*/

2.函数头注释

c 复制代码
/*
* Function: add
* Description: Adds two integers and returns the result.
* Input: a - the first integer
*        b - the second integer
* Output: None
* Returns: The sum of a and b
*/
int add(int a, int b) {
    return a + b;
}

3.代码行注释

c 复制代码
int i = 0; // initialize i to zero

4.特殊注释

c 复制代码
// TODO: implement this function
int foo() {
    // FIXME: this code causes a memory leak
    return 0;
}

三、参考资料

C代码的注释规范
C语言编写规范之注释
C 语言编码规范(MISRA-C-:2004)
C语言 - MISRA代码规范
C语言代码注释规范

C代码风格及注释(个人规范)

总结

本文仅仅简单介绍了【C语言】C语言代码规范,评论区欢迎讨论。

相关推荐
橘猫云计算机设计5 分钟前
基于springboot微信小程序的旅游攻略系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·微信小程序·毕业设计·旅游
落榜程序员6 分钟前
Java 基础-30-单例设计模式:懒汉式与饿汉式
java·开发语言
顾林海7 分钟前
深度解析ArrayList工作原理
android·java·面试
雷渊8 分钟前
spring-IoC容器启动流程源码分析
java·后端·面试
charlie1145141919 分钟前
STM32F103C8T6单片机硬核原理篇:讨论GPIO的基本原理篇章1——只讨论我们的GPIO简单输入和输出
c语言·stm32·单片机·嵌入式硬件·gpio·数据手册
矿渣渣10 分钟前
int main(int argc, char **argv)C语言主函数参数解析
c语言·开发语言
用户33154891110713 分钟前
一招搞定Java线程池炸弹,系统吞吐量暴增10倍!
java·后端
阿让啊14 分钟前
bootloader+APP中,有些APP引脚无法正常使用?
c语言·开发语言·stm32·单片机·嵌入式硬件
努力的搬砖人.17 分钟前
maven如何使用
java·后端·面试·maven
风象南21 分钟前
SpringBoot中6种跨域请求解决方案
java·spring boot·后端