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

【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?


在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏: 《高效编程技巧》《C语言进阶》

⛺️生活的理想,就是为了理想的生活!

📋 前言

  🌈hello! 各位宝子们大家好啊,今天来给大家细谈一下,菜鸟和编程大佬的差别究竟在哪里?
  ⛳️是否有很多人觉的自己的代码已经写的很不错的时候,看到大佬的代码是否会想啊!!!我的代码毛病怎么这么多。
  📚本期文章收录在《高效编程技巧》,大家有兴趣可以看看呐
  ⛺️ 欢迎铁汁们 ✔️ 点赞 👍 收藏 ⭐留言 📝!

1.如何写出好的代码?

介绍了这么多那么我们就回到正题吧!一个程序员如何写出高效的代码呢? 我们与编程高手的区别在哪里!

首先我们需要从这几个方面来分析我们的代码:

  1. 正确性、健壮性、可靠性、
  2. 效率、易用性、可读性(可理解性)、可扩展性
  3. 可复用性、兼容性、可移植性

1.2 如何分析一个函数写的怎么样

  • (1)编程风格;
  • (2)出错处理;
  • (3)算法复杂度分析(用于提高性能)

这些相信大家在学校里面要求没有这么严格过吧?但是想要编程出一个好的程序这些是必须要考虑的!

  • 按照上述三个标准我相信大家下次再写代码或者,修改自己的代码一定会有许多想要改进的地方吧!

2. 代码板式的重要性

代码的板式也是非常重要的东西可不要小看了这些东西,想写出高质量的代码板式是我们万丈高楼的一小步。

  • 版式虽然不会影响程序的功能,但会影响可读性
  • 程序的版式追求清晰、美观,是程序风格的重要构成因素

其实我们可以把,代码的板式理解为我们日常生活中的 书法 ,书法好了就可以让人一幕了然。如果代码风格一塌糊涂的话,那么我们在维护这些代码时肯定一阵头大。

  • 好的“书法”可让人对程序一目了然,看得兴致勃勃
  • 差的程序“书法” 让人看得索然无味,更令维护者骂娘的心都有了

2.1 代码空行

空行的作用也是非常大的,好的空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。

  • 而且空行并不会影响我们程序的大小和性能,所以可以放心使用

2.1.1 函数定义的空行演示

📚 代码演示:

// 空行 
void Function1()
{//…
}
// 空行 
void Function2()
{//…
}
// 空行 
void Function3()
{//…
}

2.1.1 函数内部的空行

📚 代码演示:

// 空行
while (condition) 
{ statement1; // 空行if (condition) { statement2; } else { statement3; } // 空行statement4; 
} 

2.2 代码行

我们以前在初学C语言的时候,总喜欢一行定义多个变量还不初始化这个是非常不对的:

  • 不方便阅读,并且也不方便于写注释

所以正确的代码行应该这个样写:

  1. 一行代码只做一件事情,如只定义一个变量或只写一条语句。这样的代码容易阅读,并且方便于写注释。
  2. if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。
风格良好的代码行风格不良的代码行

在这里插入图片描述
2.2.1建议:

  • 尽可能在定义变量的同时初始化该变量(就近原则)

如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。

int width = 10; // 定义并初绐化 width 
int height = 10; // 定义并初绐化 height 
int depth = 10; // 定义并初绐化 depth

2.3 代码行内的空格

  • 【规则 一 】关键字之后要留空格。像 const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。

  • 【规则 二 】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

  • 【规则 三 】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

  • 【规则 四】‘,’之后要留空格,如 Function(x, y, z)。如果‘;’不是一行的结束
    符号,其后要留空格,如 for (initialization; condition; update)。

  • 【规则 五】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等双目操作符的前后应当加空格。

  • 【规则 六】单目操作符如“!”、“~”、“++”、“–”、“&”(地址运算符)等前后不
    加空格。

  • 【规则 七】象“[]”、“.”、“->”这类操作符前后不加空格。
    🔥 注:对于表达式比较长的 for 语句和 if 语句,为了紧凑起见可以适当地去掉一些空格,如 for (i=0; i<10; i++)和 if ((a<=b) && (c<=d))

代码行内的空格

在这里插入图片描述

2.4 对齐

  • 【规则 一】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用
    它们的语句左对齐。
  • 【规则二】{ }之内的代码块在‘{’右边数格处左对齐。

🔥 示例: 2-4(a)为风格良好的对齐,示例 2-4(b)为风格不良的对齐。

风格良好的代码行风格不良的代码行

在这里插入图片描述

📝全篇总结

✅ 归纳:
好了以上就是关于分支语句 switch 的用法,和注意事项就全部讲解完毕啦!
  switch的介绍
  switch的语法
  switch中的break
  default语句
  switch的注意事项
☁️ 把本章的内容全部掌握,铁汁们就可以熟练应用switch语句啦!
看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注

💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。
在这里插入图片描述

相关文章:

【高效编程技巧】编程菜鸟和编程大佬的差距究竟在哪里?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《高效编程技巧》《C语言进阶》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言1.如何写出好的代码&#xff1f;1.2 如何分析一个函数写的怎么样 2. 代码板式的重要性2.1 代码…...

继承【C++】

文章目录 继承的概念继承的定义继承方式和访问限定符继承基类成员访问方式的变化 默认继承方式 基类和派生类对象赋值转换继承中的作用域派生类的默认成员函数继承与友元静态成员菱形继承及菱形虚拟继承继承的方式 菱形虚拟继承菱形虚拟继承原理 继承的概念 继承(inheritance)…...

ORB-SLAM3复现过程中遇到的问题及解决办法

在复现过程中遇到的问题的解决过程 1. 版本检查1.1 Opencv版本的检测1.2 Eigen版本的检测1.3 查看Python版本1.4 其他 2. 编译过程中遇到的问题及解决办法2.1 ./build.sh遇到的问题2.2 ./build_ros.sh遇到的问题 因为环境比较干净&#xff0c;所以遇到的问题相对少一些&#xf…...

vue开发桌面exe应用

vue开发桌面exe应用 Electron-vue 参考 Electron-vue搭建vue全家桶Element UI客户端&#xff08;一&#xff09; 如何使用Vue.js构建桌面应用程序...

C# 实现PictureBox从随机选择的文件夹内对图像进行随机播放

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...

腾讯云国际代充-GPU服务器安装驱动教程NVIDIA Tesla

腾讯云国际站GPU 云服务器是基于 GPU 的快速、稳定、弹性的计算服务&#xff0c;主要应用于深度学习训练/推理、图形图像处理以及科学计算等场景。 GPU 云服务器提供和标准腾讯云国际 CVM 云服务器一致的方便快捷的管理方式。 GPU 云服务器通过其强大的快速处理海量数据的计算性…...

【python爬虫】9.带着小饼干登录(cookies)

文章目录 前言项目&#xff1a;发表博客评论post请求 cookies及其用法session及其用法存储cookies读取cookies复习 前言 第1-8关我们学习的是爬虫最为基础的知识&#xff0c;从第9关开始&#xff0c;我们正式打开爬虫的进阶之门&#xff0c;学习爬虫更多的精进知识。 在前面几…...

原神剑冢三层封印怎么解开 原神剑冢三层封印在哪里打

在原神游戏中原神探索剑冢封印并解开三层封印&#xff0c;玩家可以去蒙德城接取一个隐藏任务&#xff0c;这项任务需要玩家去解开剑冢三层封印&#xff0c;才能完成任务。然而&#xff0c;许多玩家可能还不知道如何解开这个封印&#xff0c;今天小编为大家整理了一份详细的攻略…...

Papers with Semi-supervised Learning for Medical Image Segmentation(SSL4MIS)

Papers_with_SSL4MIS CVPR2023 DateCategory标题TitleCodeBlog2023-06半监督医学图像分割用于半监督医学图像分割的伪标签引导对比学习Pseudo-Label Guided Contrastive Learning for Semi-Supervised Medical Image SegmentationLinkLink2023-06半监督图像分割SemiCVT&#…...

c#继承(new base)的使用

概述 C#中的继承是面向对象编程的重要概念之一&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;从另一个类&#xff08;称为父类或基类&#xff09;继承属性和行为。 继承的主要目的是实现代码重用和层次化的组织。子类可以继承父类的字段、属性、方法和事…...

【办公自动化】使用Python批量处理Excel文件并转为csv文件

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

手机怎么剪视频?分享一些剪辑工具和注意事项

视频剪辑是一种将多个视频片段进行剪切、合并和编辑的技术&#xff0c;它可以帮助我们制作出精彩的视频作品。如今&#xff0c;随着智能手机的普及&#xff0c;我们可以随时随地使用手机进行视频剪辑。本文将为大家介绍一些手机剪辑工具和注意事项&#xff0c;帮助大家更好地进…...

面试题汇总

文章目录 一. 腾讯二. 华为三. 快手1. Long 的长度和范围&#xff0c;为什么要减 1 (Java基础)2. 线程池配置无界队列了之后&#xff0c;拒绝策略怎么搞&#xff0c;什么时候用到无界队列 (JUC并发) 四. 美团五. 阿里六. 百度七. 字节八. 大疆1. 为什么创建进程开销比线程大? …...

LLVM系列:1.设计思想和LLVM IR简介

文章目录 背景介绍内容简介LLVM库的集合以及模块化设计LLVM优化器的模块化设计LLVM代码生成器的模块化设计LLVM IRLLVM编译流程LLVM IR的设计思想LLVM的形式LLVM IR的结构组成指令格式和变量示例参考文献:背景介绍 LLVM项目于2000年创立于伊利诺斯州大学,原本是一个为了静态…...

mysql中间件Atlas

Mysql 的 proxy 中间件有比较多的工具&#xff0c;例如&#xff0c;mysql-proxy(官方提供), atlas , cobar, mycat, tddl, tinnydbrouter等等。 ​ 而Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Pro…...

ChatGPT 实现动态地图可视化展示

地图可视化分析有许多优点和好处: 1.直观理解:地图可视化使得复杂的数据更易于理解。通过地图可视化,人们可以直观地看到地理位置、地区之间的关系以及空间分布的模式。 2.提高决策效率:地图可视化可以帮助决策者快速理解和解释数据,从而提高决策效率。 3.高效的数据整…...

Vue.js安装步骤和注意事项

安装完node.js后开始安装和部署Vue在检查webpack的下载版本时出现错误出现错误的原因是之前下载时未指定对应的版本号导致版本不兼容先卸载掉之前下载的版本 cnpm uninstall webpack-cli -g cnpm install webpack-cli4.9.2 -g 最后检查版本是否对应...

IDEA中Run/Debug Configurations添加VM options和Program arguments

1. 现象描述 我在我的IDEA当中打开配置模板后&#xff0c;发现没有VM options和Program arguments&#xff0c;也就是虚拟机选项和程序实参这两项&#xff0c;导致我不能配置系统属性参数和命令行参数&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff0…...

信息技术03--初/高中--简答题(73道知识简答)

文章目录 第一章 初中简答 1-231.1、请简要回答TCP/IP中传输层的功能以及两种主要协议1.2、请简要回答”数字化学习与创新“主要体现在哪些方面&#xff1f;1.3、人工智能给人类社会带来了巨大的变化也带来了一些问题&#xff0c;请列举出三个涉及个人隐私问题的场景并进行简要…...

Matlab之统计一维数组直方图 bin 计数函数histcounts

一、语法 [N,edges] histcounts(X) [N,edges] histcounts(X,nbins) [N,edges] histcounts(X,edges) 解释&#xff1a; 1.1 [N,edges] histcounts(X) 将 X 的值划分为多个 bin&#xff0c;并返回每个 bin 中的计数以及 bin 边界。histcounts 函数使用自动分 bin 算法&am…...

5个关键步骤:OpenCore Legacy Patcher旧Mac设备系统升级全攻略

5个关键步骤&#xff1a;OpenCore Legacy Patcher旧Mac设备系统升级全攻略 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着苹果公司对旧款Mac设备的系统支…...

【GIS】深入解析地理学中的尺度三重性:Size、Level、Relation的实践应用

1. 尺度三重性&#xff1a;GIS分析的基石 第一次接触"尺度"概念时&#xff0c;我也被各种术语绕晕过——为什么1:10000叫大比例尺却显示小范围&#xff1f;为什么生态学家说的"尺度"和城市规划师说的完全不是一回事&#xff1f;直到把尺度拆解成Size&#…...

如何将 iQOO 手机备份到Mac

iQOO是vivo旗下的智能手机品牌&#xff0c;以其强劲的性能、出色的游戏体验和极具竞争力的价格而闻名。它深受那些希望以合理价格购买高性能Android手机的用户欢迎。然而&#xff0c;由于缺乏官方的 macOS 管理工具&#xff0c;许多用户发现将 iQOO 手机备份到Mac并非易事。幸运…...

Qwen2.5-14B-Instruct+Pixel Script Temple:高校戏剧系AI辅助教学实战案例

Qwen2.5-14B-InstructPixel Script Temple&#xff1a;高校戏剧系AI辅助教学实战案例 1. 项目背景与价值 在高校戏剧教育领域&#xff0c;剧本创作一直是教学难点。传统教学模式下&#xff0c;学生需要花费大量时间在格式规范、基础场景构建等基础性工作上&#xff0c;而教师…...

高效智能转换方案:B站缓存视频一键处理实战指南

高效智能转换方案&#xff1a;B站缓存视频一键处理实战指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在B站视频频繁下架的当下&#xff0c…...

Hunyuan-MT-7B与SpringBoot整合实战:企业级翻译服务开发

Hunyuan-MT-7B与SpringBoot整合实战&#xff1a;企业级翻译服务开发 1. 引言 在全球化业务快速发展的今天&#xff0c;企业经常需要处理多语言内容。传统翻译方案要么成本高昂&#xff0c;要么响应速度慢&#xff0c;很难满足实时业务需求。腾讯开源的Hunyuan-MT-7B翻译模型&…...

【仅限JDK 25 Early Access用户】:隐藏API `LinkerOptions` 强制启用向量化调用的2行代码,实测吞吐提升2.8倍

第一章&#xff1a;Java 25 外部函数接口优化案例Java 25 正式将外部函数与内存 API&#xff08;Foreign Function & Memory API&#xff09;从预览特性转为正式特性&#xff0c;显著提升了 JVM 与本地代码交互的安全性、性能与开发体验。相比早期 JNI 方案&#xff0c;FFM…...

[Windows 驱动] 深入解析进程名获取的多种内核方法

1. Windows驱动开发中的进程名获取基础 在Windows内核驱动开发中&#xff0c;获取进程名是最基础但至关重要的操作之一。想象一下&#xff0c;你正在开发一个安全监控驱动&#xff0c;需要实时检查哪些进程正在运行&#xff1b;或者你在开发一个性能优化工具&#xff0c;需要针…...

P3C黄山版突破式迁移指南:无缝升级Java代码规范检查体系

P3C黄山版突破式迁移指南&#xff1a;无缝升级Java代码规范检查体系 【免费下载链接】p3c Alibaba Java Coding Guidelines pmd implements and IDE plugin 项目地址: https://gitcode.com/gh_mirrors/p3/p3c 在Java开发团队中&#xff0c;代码规范检查工具的升级往往伴…...

从安防摄像头到直播:手把手教你用ZLMediaKit搭建GB28181视频监控平台

从安防摄像头到直播&#xff1a;手把手教你用ZLMediaKit搭建GB28181视频监控平台 在智能安防和物联网快速发展的今天&#xff0c;视频监控系统的网络化和智能化已成为行业标配。GB28181作为国内视频监控领域的国家标准协议&#xff0c;实现了不同厂商设备间的互联互通。而ZLMed…...