【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语言代码规范,评论区欢迎讨论。

相关推荐
树若逝花若殇2 分钟前
基于Spring AOP优雅记录请求响应日志
java·spring boot
HRTOS10 分钟前
HRTOS 4.0 驱动库实例:LCD1602显示屏使用示例
c语言·单片机·嵌入式硬件·51单片机
Yyyyyy~29 分钟前
【java】数组的定义和使用
java
麻辣布丁30 分钟前
java集合篇面试模拟
java·开发语言·面试
niucloud-admin31 分钟前
JAVA V6 多商户商城 开发文档——插件开发规范
java·开发语言
嘟哩DuliDuli44 分钟前
创作 Agent 的任务状态该如何保存
android·java·javascript
wdfk_prog1 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
Token掘金室1 小时前
JSON模式结构化输出报错
java·服务器·json
秋饼1 小时前
Spring AI 2.0 接入 DeepSeek V4.1 Flash 生产级实战
java·ai·技术分享·后端开发
IT枫斗者枫哥1 小时前
Java 分批导出仍然 OOM?用 32 MiB 堆复现三种 CSV 写法
java