C语言 coding style
头文件
The #define Guard
头文件的包含顺序
- C System Files
- Other Libraries
- User Library
- 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的括号与变量名中间不加空格
![]()
换行
基本上都只空一行
相关文章:
C语言 coding style
头文件 The #define Guard #define的保护文件的唯一性,防止被多重包含 格式 : <PROJECT>_< FILE>_H_ PROJECT : XS FILE : MV_CTR 头文件的包含顺序 C System FilesOther LibrariesUser LibraryConditional include 作用域 局部变量 -变量定义时需要…...
Python办公自动化之PDF
Python操作PDF 1、Python操作PDF概述2、批量拆分3、批量合并4、提取内容(文字)5、提取内容(表格)6、提取图片7、PDF添加水印8、加密与解密1、Python操作PDF概述 Python操作PDF主要有两个库:PyPDF2和pdfplumber PyPDF2是一个用于处理PDF文件的Python第三方库 官网文档参考:…...
【每日一题Day331】LC2560打家劫舍 IV | 二分查找 + 贪心
打家劫舍 IV【LC2560】 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额…...
JVM 参数详解
GC有两种类型:Scavenge GC 和Full GC 1、Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到…...
uni-app获取地理位置
在uni-app中,可以通过uni.getLocation()方法获取地理位置。具体步骤如下: 在uni-app项目中的manifest.json文件中,添加需要获取地理位置的权限: {"mp-weixin": {"appid": "...","permission…...
Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting
Jason Wei等作者对思维链的定义是一系列的中间推理步骤( a series of intermediate reasoning steps )。目的是为了提高大型语言模型(LLM)进行复杂推理的能力。 思维链通常是伴随着算术,常识和符号推理等复杂推理任务出…...
Vim编辑器使用入门
目录 一、Vim 编辑器基础操作 二、Vim 编辑器进阶操作 三、Vim 编辑器高级操作 四、Vim 编辑器文件操作 五、Vim 编辑器文件管理 六、Vim 编辑器进阶技巧 七、Vim 编辑器增强功能 Vim的三种工作模式 一、Vim 编辑器基础操作 1.移动光标 - 光标的移动控制 移动光标有两…...
早餐与风景
来吧,我用流水账描述下这一天。 时维九月,北京的早上有点冷,因为今天有个市场活动要去支撑,按照会议时间的要求,我需要在早上7点半就赶到会场,所以昨天晚上我加班到凌晨处理完了今天要给出去的材料…...
常用python代码串
记录新疆出差期间的一些代码 打开yaml文件python中的专有名词ctrlc 打开yaml文件 with open(/home/cyun/文档/cotton_ws/src/control/scripts/ControlParameter.yaml, r) as file:yaml_data yaml.load(file, Loaderyaml.FullLoader)后面发现像这种打开文件的最好是try一下 p…...
电脑桌面透明便签软件是哪个?
在现代快节奏的工作环境中,许多上班族都希望能够在电脑桌面上方便地记录工作资料、重要事项、工作流程等内容。为了解决这个问题,一款优秀的电脑桌面便签软件是必不可少的。在选择桌面便签软件时,许多用户也希望便签软件能够与电脑桌面壁纸相…...
Git创建干净分支,本地操作不依赖任何分支
clone远程项目: git clone gittest.git查看分支: git branch -a创建新分支: git checkout --orphan test, 返回Switched to a new branch test删除当前项目文件夹下所有文件: git rm -rf .提交变更: git commit -m "new branch for test"查看分支: git branch -a, 发…...
sqlmap tamper脚本编写
文章目录 tamper脚本是什么?指定tamper脚本运行sqlmap安全狗绕过tamper脚本 tamper脚本是什么? SQLMap 是一款SQL注入神器,可以通过tamper 对注入payload 进行编码和变形,以达到绕过某些限制的目的。但是有些时候,SQLM…...
5.5V-65V Vin同步降压控制器,具有线路前馈SCT82630DHKR
描述: SCT82630是一款65V电压模式控制同步降压控制器,具有线路前馈。40ns受控高压侧MOSFET的最小导通时间支持高转换比,实现从48V输入到低压轨的直接降压转换,降低了系统复杂性和解决方案成本。如果需要,在低至6V的输…...
YOLOv5、YOLOv8改进:Decoupled Head解耦头
目录 1.Decoupled Head介绍 2.Yolov5加入Decoupled_Detect 2.1 DecoupledHead加入common.py中: 2.2 Decoupled_Detect加入yolo.py中: 2.3修改yolov5s_decoupled.yaml 1.Decoupled Head介绍 Decoupled Head是一种图像分割任务中常用的网络结构&#…...
Prometheus+Grafana可视化监控【Redis状态】
文章目录 一、安装Docker二、安装Redis数据库(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装redis_exporter七、Grafana添加Redis监控模板 一、安装Docker 注意:我这里使用之前写好脚本进行安装Docker,如果已…...
怒刷LeetCode的第6天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:哈希表 方法二:逐个判断字符 方法三:模拟减法 第二题 题目来源 题目内容 解决方法 方法一:水平扫描法 方法二:垂直扫描法 方法三:分治法 方…...
SSL双向认证-Nginx配置
SSL双向认证需要CA证书,开发过程可以利用自签CA证书进行调试验证。 自签CA证书生成过程:SSL双向认证-自签CA证书生成 Nginx配置适用于前端项目或前后端都通过Nginx转发的时候(此时可不配置后端启用双向认证) 1.Nginx配置&#…...
GO学习之 远程过程调用(RPC)
GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...
八大排序(四)--------直接插入排序
本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…...
MYSQL--存储引擎和日志管理
存储引擎: 一、存储引擎概念: MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎是My…...
Qwen3.5-4B-Claude-Opus实战案例:用该模型辅助撰写RFC文档与技术决策说明
Qwen3.5-4B-Claude-Opus实战案例:用该模型辅助撰写RFC文档与技术决策说明 1. 模型特性与RFC文档撰写需求 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF作为一款专注于推理分析的AI模型,其结构化思维和分步骤回答能力特别适合技术文档撰写场景…...
AI时代当程序员?2026年转行IT的“新活法”
早知道AI会让程序员干这个,当年说啥也不信 凌晨三点,老刘瞪着AI生成的2000行代码,这已经是他熬夜修复的第47个bug了。 AI一分钟写完的模块,他调了三天。最绝的是——每修好一个bug,AI都能“贴心”地再送出三个新bug作为…...
基于YOLOv10深度学习的管道泄漏检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)
一、项目介绍 项目摘要 随着工业管道运输系统的日益复杂化,管道泄漏事故不仅会造成巨大的经济损失,还可能引发严重的环境污染和安全事故。为了实现对管道泄漏的快速、准确识别,本研究提出了一种基于YOLOv10深度学习模型的智能管道泄漏检测系…...
颠覆式突破:无需模拟器,在Windows系统上直接运行Android应用的革命性方案
颠覆式突破:无需模拟器,在Windows系统上直接运行Android应用的革命性方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想象一下,…...
ESP32-C3开发环境搭建(VSCode+ESP-IDF)与串口占用疑难排查实战
1. ESP32-C3开发环境搭建全攻略 第一次接触ESP32-C3开发板时,我和大多数开发者一样,被环境搭建这个"入门杀"折腾得够呛。特别是使用合宙经典款开发板时,USB转串口芯片带来的各种"惊喜"让人措手不及。这里分享一套经过实战…...
springboot基于Vue的大学生心理健康交流系统的设计与实现
目录系统架构设计数据库设计核心功能模块前端界面开发测试部署方案项目进度规划注意事项项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,后端使用SpringBoot框架提供RESTful API接…...
Windows下MySQL 8.0数据库存储路径迁移实战:释放C盘空间
Windows下MySQL 8.0存储路径迁移全指南:彻底解放C盘空间 对于长期在本地开发环境中使用MySQL的开发者来说,系统盘空间被数据库文件逐渐蚕食是常见痛点。默认安装的MySQL 8.0会将数据目录存放在C盘的隐蔽位置,随着业务数据增长,不仅…...
Yep应用商店优化终极指南:提升App Store排名与下载量的10个策略
Yep应用商店优化终极指南:提升App Store排名与下载量的10个策略 【免费下载链接】Yep Meet Genius 项目地址: https://gitcode.com/gh_mirrors/ye/Yep Yep是一款主打社交互动的移动应用,通过优化App Store展示内容和用户体验,可以显著…...
深入理解栈溢出:我是如何通过CSAPP的AttackLab实验重新认识缓冲区安全的
深入理解栈溢出:从AttackLab实验看现代系统安全防御博弈 当我在深夜的实验室里第一次看到Segmentation fault提示时,并没有意识到这行简单的错误信息背后隐藏着怎样的安全危机。作为计算机系统安全领域最经典的漏洞类型,栈溢出攻击在过去三十…...
像素幻梦·创意工坊部署教程:Mac M1/M2芯片原生运行FLUX.1-dev像素生成
像素幻梦创意工坊部署教程:Mac M1/M2芯片原生运行FLUX.1-dev像素生成 1. 前言:认识像素幻梦创意工坊 像素幻梦创意工坊(Pixel Dream Workshop)是一款专为像素艺术创作设计的AI工具,基于最新的FLUX.1-dev扩散模型构建。与传统的AI绘图工具不…...
