C/C++ 你的代码风格真的是最好的吗?

C++编程风格 1.指针的算术运算 对vector、array等内存连续的容器进行取值操作: 函数传入参数的不同类型 ----模板 内存连续 ----指针 阅读详情

本篇文章来自腾讯课堂骑牛学院VIP笔记!


代码布局

以码取人

普通人,以貌取人
程序员,以码取人

代码风格、代码布局,比代码质量更重要!
代码风格不好,直接被出局


极端代码布局

实例:

#include <iostream> 
#include <Windows.h>
#include <string>
#define WIDTH		40   
#define HEIGHT		15
using namespace std;void init(void) {char cmd[128]; sprintf(cmd, "mode con cols=%d lines=%d", WIDTH, HEIGHT);system(cmd);}
void printInMiddle(string msg) {int space = (WIDTH - msg.length()) /2 ;for (int i=0; i<space; i++) {cout << " ";}cout << msg << endl;}
void menuShow(void) {string menu[] = {"1.网站404攻击","2.网站篡改攻击","3.网站攻击修复","4.查看攻击记录","5.退出"};system("cls");printInMiddle("---黑客攻击系统---");/* 计算菜单最大长度:*/int max = 0;int menuCount = sizeof(menu)/sizeof(menu[0]);for (int i=0; i< menuCount; i++) {if (menu[i].length() > max) {max = menu[i].length();}}int leftSpace = (WIDTH - max) / 2;for (int i=0; i<menuCount; i++) {for (int i=0; i<leftSpace; i++){printf(" ");}cout << menu[i] << endl;}}
int main(void) {init();menuShow();system("pause");return 0;}

出现场合:菜鸟也不会这么写,一般是外包程序员,给不愿意多出钱的甲方提供的源码。


稍好的代码布局:

#include <iostream> 
#include <Windows.h>
#include <string>
#define WIDTH		40   
#define HEIGHT		15
using namespace std;
void init(void) 
{char cmd[128]; 
sprintf(cmd, "mode con cols=%d lines=%d", WIDTH, HEIGHT);
system(cmd);
}
void printInMiddle(string msg) 
{int space = (WIDTH - msg.length()) /2 ;
for (int i=0; i<space; i++) {
cout << " ";
}
cout << msg << endl;
}
void menuShow(void) 
{string menu[] = {
"1.网站404攻击","2.网站篡改攻击","3.网站攻击修复","4.查看攻击记录","5.退出"};
system("cls");
printInMiddle("---黑客攻击系统---");
/* 计算菜单最大长度:*/
int max = 0;int menuCount = sizeof(menu)/sizeof(menu[0]);
for (int i=0; i< menuCount; i++) {
if (menu[i].length() > max) {
max = menu[i].length();
}}
int leftSpace = (WIDTH - max) / 2;
for (int i=0; i<menuCount; i++) 
{for (int i=0; i<leftSpace; i++){
printf(" ");
}
cout << menu[i] << endl;
}}
int main(void) {
init();
menuShow();
system("pause");
return 0;
}

仍然是不合格的布局。


好的布局原则

要凸显程序的逻辑结构(注意,是逻辑结构,而不是外表结构)
魔鬼身材:该凸的凸,该凹的凹

计算机只看内涵,完全忽视外表

但是,代码有两个作用:

  1. 让计算机加工,变成可执行的软件
  2. 给程序员看的,用来进行维护,修改。

让人误解的代码:
int x = 1+2 * 2+5;

让人困惑的代码:
在这里插入图片描述


不同的审美冲突

在这里插入图片描述

接受他人的审美,保持自己的审美
最重要的是,审美观保持一致(代码风格保持一致)


把颜值控进行到底

不注重代码布局的程序员,不是好的程序员。

把“凸凹有致”的代码布局,作为一种信仰!

追求目标:

  1. 准确的表达代码的逻辑结构(不要让人误读,或者难以理解)
  2. 保持一致的布局风格
  3. 更好的可读性
  4. 更好的可维护性(便于修改)

布局技术

空白
空格,制表符,换行,空行

分组
把相关的语句组放在一起

缩进

括号
好的括号使用,让程序员从优先级中解脱出来
int x = 1 + 2 % 3 * 4 / 5;


布局风格

纯块结构

VB
在这里插入图片描述


模仿纯块结构 【个人推荐】

C/C++
在这里插入图片描述


指定块边界

格式
在这里插入图片描述
C/C++
在这里插入图片描述


指定块边界变种【VS推荐】

在这里插入图片描述


风格的选择

团队开发时,和团队保持一致。
个人开发时,风格保持不变。


风格的陷阱

在这里插入图片描述


段落之间要空行

错误:
在这里插入图片描述
正确:
在这里插入图片描述


If 语句的艰难选择

在这里插入图片描述
都有人在使用。

推荐第2种.

重要的是要保持一致。

第一种最烂.


多个条件的布局

错误
在这里插入图片描述

正确
在这里插入图片描述


避免使用goto

如果一定要使用goto, 推荐写法
在这里插入图片描述


Switch-case语句的常见不佳布局

不便于维护修改
在这里插入图片描述

推荐布局:
在这里插入图片描述


一行到底可以有多长

建议,不超过80个字符(打印的页面宽度)


断行后的后续处理

风格1
在这里插入图片描述

风格2
在这里插入图片描述
在这里插入图片描述

极其恶心的布局:
在这里插入图片描述

优化后的布局:
在这里插入图片描述


函数参数断行处理

风格1:对函数名进行缩进
在这里插入图片描述

风格2:对第一个参数进行对齐
在这里插入图片描述

风格3:每个参数单独占用一行
在这里插入图片描述


多个的赋值语句的布局

难以维护的布局:
在这里插入图片描述

合理的布局:
在这里插入图片描述


宏定义的布局

值对齐

#define ONE    1
#define TOW    2
#define THREE  3
#define FOUR   4
#define FIVE   5

不要在一行里同时做多件事情

在这里插入图片描述

优化:
在这里插入图片描述


总结:
根据文章总结出自己的代码风格,不要随意的去更改,养成良好的代码风格,写代码必须简洁明了,可以去仿造一些大神的好的代码风格,然后再根据自身情况去修改完善。

【VScode | 高效编码】一键配置Clang-format实现C/C++代码风格自动化管理 本文详细介绍了如何在VScode中一键配置Clang-format,实现C/C++代码风格的自动化管理。通过安装C/C++插件、创建自定义.clang-format配置文件,并设置保存时自动格式化,开发者可以轻松统一团队代码风格,提升代码可读性和协作效率,告别繁琐的手动排版。 阅读详情

相关推荐

【VScode | 高效编码】一键配置Clang-format实现C/C++代码风格统一

本文详细介绍了如何在VScode中配置Clang-format工具,实现C/C++代码风格的统一。通过安装、基础配置、自定义.clang-format文件以及高级技巧,帮助开发者提升团队协作效率,减少代码审查中的格式争议。文章还提供了常见问题的解决方案,确保代码风格一致性和可读性。

weixin_28835789的博客 422

C++ 编码风格建议

尽可能精简行数,函数返回类型和函数名在同一行,参数也尽量放在同一行,如果放不下就对形参分行且与第一个形参对齐,或者另起一行且缩进四格,分行方式与函数调用一致。// 函数返回类型、函数名和参数放在同一行 ReturnType ClassName :: functionName(Type parName1 , Type parName2) {

Doublelv 的博客专栏。 2328

Dify 1.1.3部署避坑指南:用wait-for-it.sh解决PostgreSQL初始化失败问题

本文详细解析了Dify 1.1.3部署中遇到的插件数据库初始化失败问题,并提供了使用wait-for-it.sh脚本的实战解决方案。通过剖析Docker Compose服务依赖管理的局限性,指导用户如何改造镜像与配置,确保服务按正确顺序启动,从而有效解决数据库连接失败等部署难题。

wdx012345的博客 1002

C++码风处理

C++码风处理

w_m_x_d的博客 466

别再只玩积木了!用乐高EV3和官方软件,手把手教你做个能巡线的小车(附完整代码)

本文详细介绍了如何利用乐高EV3套件和官方软件制作智能巡线机器人,从硬件组装到软件编程全面覆盖。通过传感器原理讲解、控制算法调试等工程化细节,帮助读者掌握机器人开发的核心理念,特别适合STEAM教育和硬件编程爱好者实践。

weixin_30776273的博客 449

Altera USB-Blaster在Win10/Win11的驱动兼容性处理

解决Altera USB-Blaster在Windows 10和Windows 11系统下的驱动兼容性问题,详细演示如何手动安装与更新altera usb-blaster驱动安装,确保下载电缆正常识别,提升开发调试效率。

weixin_42284380的博客 1288

【C++学习笔记】:代码风格

C++学习笔记:1. 工具2. 代码风格(本文)3. 安全性4. 可维护性5. 可移植性及多线程6. 性能7. 正确性和脚本代码风格最重要的是一致性,其次是遵循C++程序员习惯的阅读风格。C++允许任意长度的标识符名称,因此在命名时没必要非要保持简洁,建议使用描述性名称,并在风格上保持一致。(驼峰命名法)(蛇形命名法)这两种是很常见的命名规范,的优点是,在需要的时候可以适配拼写检查器。建立代码风格指南无论建立什么样的代码风格指南,一定要实现指定期望风格的文件。虽然这对命名没有帮助,但对于开源项目来说,保持一

Jiangziyadizi的博客 1293

vue3接入大华摄像头

┃ ┃ ┣ 📜PlaybackModal.vue 回放列表模态框。┃ ┃ ┗ 📜VideoGrid.vue 视频播放区域。┃ ┃ ┣ 📜ControlPanel.vue 控制面板。┃ ┃ ┣ 📜DeviceList.vue 设备列表。┃ ┣ 📂module //大华摄像头文件。

💻 专注 Vue 前端与 Java 后端技术 🌱 目前正在深入 Spring Boot、微服务与性能优化 📝 定期分享实战踩坑经验与学习笔记 🤝 欢迎交流,共同进步 913

C++ 风格指南

C++ 风格指南

zhaominyong的专栏 1044

R语言实战应用精讲50篇(二)-多重线性回归系列之稳健回归

前言 线性回归的参数估计主要采用的是最小二乘法(又称最小平方法),该法是将使观测值与模型预测值之差的平方达到最小的值作为参数估计值。如果数据存在异常点或者异方差,最小二乘法估计会存在偏差,常用的处理策略就是改用稳健回归(Robust Regression)。 稳健回归就是采用更为稳健的参数估计方法来拟合模型,所谓稳健就是数据的波动对参数估计影响不大,比如不受异常值影响,或删除某一观测后对结果影响不大。稳健估计的方法有很多,主要有这么几类:最小绝对值回归(也称最小一乘法回归,lAV),最小中位数二乘法(L

wenyusuran的专栏 3160

【OpenClaw从入门到精通】第11篇:OpenClaw 2026多模态实战全攻略:OCR/语音/图像自动化(附完整代码+双部署方案)

本文聚焦OpenClaw 2026版核心升级的多模态能力,从底层架构原理到实操落地全流程拆解。先解析“统一指令解析+多工具适配器”的核心设计逻辑,再提供阿里云规模化部署(适合批量任务)与本地汉化版部署(适合隐私数据调试)的详细步骤,含依赖安装、配置验证完整操作;随后落地三大高频实战场景——OCR合同信息结构化提取、会议录音自动转写纪要、电商商品图片智能打标,每个场景均提供可直接运行的完整代码、执行结果演示及流程说明;最后补充多模态任务避坑指南、性能优化技巧与成本控制方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2611

vscode无法使用C/C++插件格式化cpp代码

1.在设置中搜索关键词format确定“C_Cpp.clang_format_path”设置正确。 win10下通常设置为"C:\\Users\\user\\.vscode\\extensions\\ms-vscode.cpptools-1.0.1\\LLVM\\bin\\clang-format" 2.确保当前workspace下拥有clang-format文件。(格式如后) 3.确定default-formatter设置为ms-vscode.cpptools #.clang-fo...

frankcreen的专栏 5494

【MATLAB-app】系列教程(含视频)第4、5、6课:实战_制作简单的图像处理软件

写作时间: 2020-12-27 我的教程目录 第1课:初步了解appdesigner 第2课:学会制作一个计算器 第3课:学习更多的控件(重点!) 第4课:实例1:制作一个图像处理软件 第5课:学习APPdesigner的设计精髓,框架 第6课:结合使用多种控件,函数等,丰富我们的实例1 第7课:app设计打包,完成工程应用导出 标题: 第4课:我的实例_学会制作一个图像处理软件 本文目录: 1.先看看我之前的一个工程 2.常用的基本组件控件 3.最常用且实用的控件的用法 -3.1 editfilel

wind 4051

C语言/C++ 代码风格和规范

文章目录前言一、命名规则1.驼峰命名法2.下划线命名法二、使用步骤1.引入库2.读入数据总结 前言 规范的编码书写习惯是一个程序员自我修养的必要素质,是程序员的基本素养之一。养成规范地书写代码的习惯,可以有效地提高代码的编写质量和效率,而且可以让自己的代码看起来格外舒适~ 接下来给大家介绍C/C++语言相关的一些主流代码风格和习惯 一、命名规则 在C/C++中,主要的命名规则一共有三种:驼峰命名法、下划线命名法和匈牙利命名法 1.驼峰命名法 驼峰命名法 又可以分成大驼峰命名法和小驼峰命名法 大..

在森林里麋了鹿 3730

《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记

软件工程任务:即时缺陷预测(涉及SE+AI知识)

weixin_43646592的博客 701

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

cpp-linter-action:智能优化C/C++代码质量的不二选择

cpp-linter-action:智能优化C/C++代码质量的不二选择 项目介绍 cpp-linter-action 是一个集成 clang-format 和 clang-tidy 的 GitHub Action,它致力于提升 C/C++ 代码的质量。通过在代码库中自动运行静态分析工具,该项目能够提供详尽的代码风格和错误检查反馈。反馈形式包括文件注释、线程评论、工作流步骤摘要以及拉取请求的审查评...

gitblog_00757的博客 1186

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

个人总结的一些C/C++编码规范

对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性。例如我们可以规定某个项目的C语言程序要遵循这样的规定:变量的命名,头文件的书写和#include 等等。

liyuefeilong的专栏 5835

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Dev-CPP:轻量级C/C++开发的高效IDE解决方案

Dev-CPP是一款专为C/C++开发者设计的开源集成开发环境,它集成了代码编辑、编译、调试和项目管理等核心功能,为开发者提供了轻量级、高效率的开发体验。这款IDE以其简洁的界面、快速的启动速度和全面的功能支持,成为许多C/C++开发者首选的开发工具。 ## 为什么选择Dev-CPP?三大核心优势解析 ### 🚀 轻量级设计,启动速度极快 Dev-CPP采用精简的架构设计,安装包仅50MB左

gitblog_00436的博客 624

C/C++ 代码风格

c 语言的语句粒度小,经常需要用空行分开不同的代码块。加了足够多空行分隔的代码,{ 放到新行开始会更舒服。参考: https://codebus.cn/zhaoh/post/tetris 这样子的: f( ) { ...... } 而不是这样子的: f(){ ...... } (当然,这种风格的代码也没错) e.g. /...

休的博客 512

VSCode配置 C/C++ 的格式化

则用于指定当无法应用任何其他设置时,Clang 格式化器应该使用的回退风格。这个设置通常用作最后的选择,确保即使在没有其他设置可用时,代码也能够以某种合理的方式被格式化。是用于配置 Visual Studio Code 中 C/C++ 扩展的 Clang 格式化器的两个不同设置。文件或者其他设置来指定格式化风格,那么首先会根据这些设置来格式化代码;如果这些设置不可用或不适用,才会使用。文件或者其他适用的设置,那么将会使用这些设置来格式化代码。用于指定在使用 Clang 格式化器时的首选格式化风格。

C or CPP 4725

更改 VS Code C++ 默认代码风格为 Google C++ Style

Ctrl + ,, 打开设置 输入 clang-format 将C_Cpp.clang_format_fallbackStyle值从Visual Studio改为 Google 参考:C/C++ for Visual Studio Code

回纹勾边宝相花团 2万+

vim设置c语言代码风格_Vim缩进C / C ++代码

vim设置c语言代码风格Vim provides some basic formatting commands. A combination of these commands with the editing commands will make the programmer happy. Vim提供了一些基本的格式化命令。 这些命令与编辑命令的组合将使程序员满意。 A list of bas...

cuma2369的博客 785

ubuntu VSCode编写C/C++配置

clang-format是基于LibFormat封装的工具,用于格式化代码。目前支持 C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C#代码格式化。

愿有岁月可回首,且以深情共白头 2244

Dev-CPP:轻量级C/C++开发的效率革命

### 环境配置的复杂性 在高校计算机实验室,大一新生小林面对的第一个编程任务就是配置C/C++开发环境。他花了整整一个下午下载GCC编译器,手动设置环境变量,却依然无法正常编译程序。这种情况在计算机教学中极为普遍,据教育机构统计,超过45%的学生在首次接触C/C++时会因环境配置问题而停滞不前。 ### 开发工具的资源负担 某小型软件公司的开发团队使用大型IDE进行日常开发,却经常遭遇电脑卡顿

gitblog_01192的博客 672

C语言Google代码风格整理

想要写出整洁的代码就不得不遵循某种特定规范,在这篇文章中整理了C语言的Google代码规范。推荐刚刚接触代码的新手或是已经入门但是苦于代码编写风格的开发者阅读。

Reed_redd的博客 1197
上一篇: C++ 入门算法,新手必看之:双向“链表”(三)
下一篇: 你知道 软件工程UML设计模式 吗?
cpp_learners
博客等级 码龄7年 1526粉丝 274原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值