当前位置: 首页 > news >正文

C语言 coding style

头文件

The #define Guard
#define的保护文件的唯一性,防止被多重包含
格式 : <PROJECT>_< FILE>_H_
PROJECT : XS
FILE : MV_CTR
头文件的包含顺序
  1. C System Files
  2. Other Libraries
  3. User Library
  4. Conditional include

作用域 

 局部变量

        -变量定义时需要初始化。

静态和全局变量

        -相关的变量建议使用“结构体”存储静态和全局变量

        -“static” -> For internal reference

        -“extern” -> For external reference

 杂项

使用<cstdint>中的变量类型

 0 and NULL

 整数使用0, 实数使用0.0 , 指针使用NULL

 命名规则

几种命名规则

蛇形命名法(推荐)

        local_pose, file_name

        MAX_NUMBER

Pascal Case

        LocalPose, FileName

驼峰命名法

        localPose, fileName

避免使用无意义的缩写

        FirstName -> O

        firstName -> O

        fName -> X

        f_name -> X

规则细则
文件名
  •         Ex : http_proxy.c,
  •         Ex:  hello_word.h
函数名
  •         Ex : delete_url(), open_file()
Typedef命名

        带后缀 “_t

  •         Ex : typedef int32_t* my_pointer_t;
局部变量名
  •         Ex : char *p_my_string = “string”;
指针

        带前缀 “p_

  •         Ex: int32_t *p_my_pointer = NULL;

结构体命名

        结构体名称

  •                 带前缀 “st_
  •                 Typedef 带后缀_t

        结构体成员

                蛇形命名规则

 

变量 & 函数
  •         static variable(此变数只用在此檔案)
  •         static function(此函数只用在此档案)
  •         函数名加前缀 “m_
  •         extern variable(此变量会用在其他档案)
  •         Start with prefix “g_

 

宏定义命名

        全大写并遵循蛇形命名规则

枚举命名

        Enumerator type name

                带前缀“e_

        枚举成员名

                带前缀“k_

注释

注释类型 

  •         //
  •         /* */
  •         文件函数使用Doxygen 类型的注释.

 

 格式

 每行长度

        单行code最多80个字

空格键vs. Tab

        每一行都是用Tab来缩排(length:2个字), 当单行长度超出每行长度, 被强迫换行的部分才会以空格对齐

函数声明与定义
  •         函数名与左括号同一行
  •         函数名与左括号没空格
  •         括号与参数之间没空格
  •         函数定义太长(超过80个字)就换行, 换行要做缩排并对齐左括号后第一个字
 条件表达式(if/else/…)
  •         If, else与左括号间有空格
  •         If与else不同行
  •         左大括号后必定换行
循环与Switch表达式
  •         同上规则,表达式与左括号同一行
  •         表达式与左括号有空格
  •         左大括号后必定换行
 预处理指令

        使用#时放在每一行code的最前面, 不做缩排

 操作符
  •          操作符前后要加space
  •         一元运算符与其参数就不加(ex:-5)
 类型转换

        变量做类型转换时, 包住type的括号与变量名中间不加空格

换行

        基本上都只空一行

http://www.lryc.cn/news/172913.html

相关文章:

  • Python办公自动化之PDF
  • 【每日一题Day331】LC2560打家劫舍 IV | 二分查找 + 贪心
  • JVM 参数详解
  • uni-app获取地理位置
  • Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting
  • Vim编辑器使用入门
  • 早餐与风景
  • 常用python代码串
  • 电脑桌面透明便签软件是哪个?
  • Git创建干净分支,本地操作不依赖任何分支
  • sqlmap tamper脚本编写
  • 5.5V-65V Vin同步降压控制器,具有线路前馈SCT82630DHKR
  • YOLOv5、YOLOv8改进:Decoupled Head解耦头
  • Prometheus+Grafana可视化监控【Redis状态】
  • 怒刷LeetCode的第6天(Java版)
  • SSL双向认证-Nginx配置
  • GO学习之 远程过程调用(RPC)
  • 八大排序(四)--------直接插入排序
  • MYSQL--存储引擎和日志管理
  • VUE之更换背景颜色
  • 大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统
  • Quartz 建表语句SQL文件
  • nginx SseEmitter 长连接
  • 若依cloud -【 100 ~ 】
  • VPN协议是如何工作的
  • c++::作用域符解析
  • 【电源专题】什么是充电芯片的Shipping Mode(船运模式)
  • WebGL笔记: 2D和WebGL坐标系对比和不同的画图方式, 程序对象通信,顶点着色器,片元着色器
  • 【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
  • 多模块和分布式项目