谷歌C语言编码规范详解

文件命名
  • 源文件和头文件 :文件名使用小写字母和下划线分隔。例如:my_source_file.cmy_header_file.h
包含保护
  • 头文件应使用包含保护,以防止重复包含。例如:

    #ifndef MY_HEADER_FILE_H_
    #define MY_HEADER_FILE_H_

    // 内容

    #endif // MY_HEADER_FILE_H_

注释
  • 使用/* ... */块注释和//行注释。注释应清晰、简洁,放在代码相关部分的上方或右侧。
缩进和对齐
  • 使用2个空格进行缩进。
  • 代码块应使用一致的对齐风格。
变量和结构体成员
  • 使用驼峰命名法(camelCase),如myVariablemyStructMember
函数名
  • 使用下划线命名法(snake_case),如my_function_name
结构体名称
  • 使用首字母大写的驼峰命名法(PascalCase),如MyStruct
枚举
  • 枚举类型使用首字母大写的驼峰命名法(PascalCase),如Color

  • 枚举成员使用全大写字母和下划线分隔的命名法(UPPER_SNAKE_CASE),如COLOR_RED

    typedef enum Color {
    COLOR_RED,
    COLOR_GREEN,
    COLOR_BLUE
    } Color;

宏定义
  • 使用全大写字母和下划线分隔的命名法(UPPER_SNAKE_CASE),如#define MAX_BUFFER_SIZE 1024
常量
  • 使用const关键字定义常量,而不是使用宏。
函数和参数
  • 函数应尽可能短小,并只做一件事。
  • 参数名称应清晰明了,使用驼峰命名法(camelCase)。
指针
  • 指针声明时将星号靠近变量名,如int *ptr
空间和括号
  • 运算符和关键词前后使用空格,括号内不使用空格。

    if (a == b) {
    func(a, b);
    }

错误处理
  • 使用明确的错误处理和返回值检查。
文件组织
  • 头文件包含依赖声明,源文件包含具体实现。
  • 头文件应包含函数声明、宏定义、类型定义等。
头文件依赖
  • 头文件应包含必要的依赖头文件。
静态函数
  • 非导出的函数应使用static关键字。

    static void helper_function() {
    // 实现
    }

分割大型项目
  • 大型项目应合理分割成多个文件和模块。

在项目开发过程中,按一定的规范编写代码,可以提高代码的可读性、一致性和可维护性。有助于确保代码库的高质量和协作效率。

相关推荐
2601_962295995 小时前
嵌入式开发语言用哪个最好,C,python或者其他
c语言·python·嵌入式开发·开发效率·系统资源
是隼人8 小时前
buuctf-pwn [HarekazeCTF2019]baby_rop2(64位ret2libc)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
嵌入式阿蔡9 小时前
CoAP / LwM2M 轻量协议:受限设备为什么不用 MQTT
单片机·物联网·嵌入式
wuyk55510 小时前
107.FreeRTOS 链表深度解析:从原理到面试满分答案
c语言·开发语言·数据结构·stm32·单片机·链表·面试
AAA代码批发商12 小时前
Days 39 Linux C 开发之 SQLite 数据库完整学习笔记
linux·c语言·数据库
卢锡荣13 小时前
单芯掌控多口互联|乐得瑞 LDR6020 PD3.1 多通道 Type‑C 控制 SOC 芯片
c语言·开发语言
wuminyu13 小时前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
susplus14 小时前
【HTTP协议】HTTP介绍及基础【C语言爬虫实现】
c语言·爬虫·http·万维网
xx~t15 小时前
嵌入式——Linux软件编程——数据库
linux·c语言·数据库·oracle·sqlite
水饺编程15 小时前
第5章,[Win32 章节] :圆角矩形教学插图绘制程序
c语言·c++·windows·visual studio