5.C++程序中的注释
我们来看上节所写的程序
#include <iostream>
using namespace std;void prnt() //打印A
{cout << "printA" << endl;
}int main()
{prnt();return 0;
}
上面的程序中“//打印A”,表示说明当前函数是打印内容的函数,具体打印结果,写了一个A,没有再进行更详细的描述,这个时候,我们看到的时候,能大概了解一下这个函数是做什么的,但是还得要执行函数才能知道结果,那么 ”//“后面的内容就是注释。
在编程时,注释是一个非常实用的一个工具或者是功能,可以极大提高代码的可读性和可维护性,上面的函数比较简单,可能看一眼就知道是什么意思,但是如果写一个功能复杂的函数或者是比较大的函数,看一下下面的函数(非C++代码,实际工作时写的方法)
public TmsDistributionLineVo autoDistributionLine(String accessId, BasePickUpPoint point, String orderChannel) {try {/*** 获取距离最近的点*/MPJQueryWrapper<TmsDistributionLine> mpjQW = null;/*** 获取距离最近的线*/mpjQW = new MPJQueryWrapper<TmsDistributionLine>();String sql = StrUtil.format(" st_distance_sphere(point({},{}), point(lng_center,lat_center)) distance ",point.getLongitude(), point.getLatitude());mpjQW.select(" id,distribution_line_name," + sql);mpjQW.lambda().eq(TmsDistributionLine::getLogisticsAreaId, point.getLogisticsAreaId());mpjQW.eq("access_id", accessId);mpjQW.eq("is_del", 0);mpjQW.eq("flag", 1);mpjQW.lambda().eq(TmsDistributionLine::getOrderChannel, orderChannel);mpjQW.orderByAsc("distance");mpjQW.last(" limit 1");TmsDistributionLineVo line = this.selectJoinOne(TmsDistributionLineVo.class, mpjQW);if (line != null && line.getDistance().doubleValue() < 1000) { } else {mpjQW = new MPJQueryWrapper<TmsDistributionLine>();sql = StrUtil.format(" st_distance_sphere(point({},{}), point(longitude,latitude)) distance ",point.getLongitude(), point.getLatitude());mpjQW.innerJoin(" tms_distribution_line_delivery_point_ref b on t.id = b.distribution_line_id ");mpjQW.innerJoin(" base_pick_up_point c on c.id = b.delivery_point_id ");mpjQW.select("t.id, t.distribution_line_name," + sql);mpjQW.lambda().eq(TmsDistributionLine::getLogisticsAreaId, point.getLogisticsAreaId());mpjQW.lambda().eq(TmsDistributionLine::getAccessId, accessId).eq(TmsDistributionLine::getIsDel, 0).eq(TmsDistributionLine::getFlag, 1);mpjQW.lambda().eq(TmsDistributionLine::getOrderChannel, orderChannel);mpjQW.orderByAsc("distance");mpjQW.last(" limit 1");TmsDistributionLineVo vo = this.selectJoinOne(TmsDistributionLineVo.class, mpjQW);//if (line == null && vo != null)line = vo;else {if (vo != null && vo.getDistance().doubleValue() < line.getDistance().doubleValue()) //{line = vo;}}}distributionLineDeliveryPointRefService.autoSaveRef(point.getLogisticsAreaId(), line.getId(), point.getId(), accessId, orderChannel);return line;} catch (Exception ex) {log.error(ex.getMessage());return null;}
我们写的时候,可以感觉此代码挺简单,功能也想很清楚,但是等过一段时间,再返回来看此代码,就有点摸不着头脑了,得需要一点点去分析,去执行调试才能知道是什么意思。而且如果让其它人看此代码,可能更不清楚代码是什么意思,需要给其它人解析哪一段是什么意思,执行之后,将产生什么结果等等。不利用程序的维护,可读性差。
在C++代码中的注释语法有两种,单行注释(//)和多行注释(/*....*/)。在编译的时候,编译器会自动忽略注释的内容。
单行注释(//)
单行注释用于注释一行代码,比如对某一个变量的说明,如上面的
void prnt() //打印A
//打印A就是单行注释。
多行注释主要用于注释整个代码块,在注释中可以写明当前注释的内容,或者是介绍当前函数的意义,实现方式,返回数据的类型等,也可以注释掉整个代码块。
#include <iostream>
using namespace std;/*** 主要用于实现打印功能,打印的内容为printA * * @author 码农豆豆* @version v1.0 * * @return 无返回* * **/
void prnt()
{cout << "printA" << endl;
}int main()
{prnt();return 0;
}
上面的注释就是典型的多行注释,用于解释当前函数的功能,作者,当前函数的版本号等等。
使用单行注释也可以完成,只是写起来比较累,而且很多不明确,不如多行注释规范和明确,如果当前函数暂时不需要,也可以注释掉
#include <iostream>
using namespace std;/*** 主要用于实现打印功能,打印的内容为printA * * @author 码农豆豆* @version v1.0 * * @return 无返回* * **//* 暂时不需要,注释掉
void prnt()
{cout << "printA" << endl;
}
*/int main()
{//prnt();return 0;
}
函数注释后,在main中的引用也得注释了,否则就会找不到这个函数,提示没有定义。在main中,使用了单行注释。
所以在程序中写注释是一个很重要的事情,如果不写注释,将大大降低程序的可性读和易维护性。因此一定要养成顺手写注释的习惯
相关文章:
5.C++程序中的注释
我们来看上节所写的程序 #include <iostream> using namespace std;void prnt() //打印A {cout << "printA" << endl; }int main() {prnt();return 0; } 上面的程序中“//打印A”,表示说明当前函数是打印内容的函数,具体…...
com.kingbase8.util.KSQLException: ERROR: permission denied for table xxx
前言 在信创改造中,数据库替换为国产数据库是不可缺少的一部分。而可替换选项中多数选项无非是人大金仓和达梦数据库二选一。本文将介绍人大金仓在使用过程的问题以及解决办法。 问题 在使用人大金仓数据库后,程序运行报错 com.kingbase8.util.KSQLEx…...
开发小程序
由于之前购入的阿里云ECS放着落灰,碰巧又看到个有趣的项目,于是就做了个生成头像的小程序…由于第一次完整发布小程序,记录一下遇到的问题 小程序名称:靓仔创意头像 😂 关于小程序 接口请求,在开发过程中…...
JS考核答案
1.请简述var, let, const的区别? (1)块级作用域:块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题: 内层变量可能覆盖外层变量 用来计数的…...
高德地图2.0 绘制、编辑多边形覆盖物(电子围栏)
1. 安装 npm i amap/amap-jsapi-loader --save移步:官方文档 2. map组件封装 <script lang"ts" setup> import AMapLoader from amap/amap-jsapi-loader import { onMounted, ref } from vue import { propTypes } from /utils/propTypesdefineO…...
MySQL底层为什么选择用B+树作为索引
首先,我们来想想为什么这么多数据结构,为什么要用树这种数据结构? 众多的数据结构在逻辑层面可分为:线性结构 和 非线性结构。 线性结构有:数组、链表,基于它们衍生出的有哈希表(哈希表也称散…...
MATLAB系列05:自定义函数
MATLAB系列05:自定义函数 5. 自定义函数5.1 MATLAB函数简介5.2 在MATLAB中传递变量:按值传递机制5.3 选择性参数5.4 用全局内存分享数据5.5 在函数两次调用之间本地数据的存储5.6 函数的函数(function functions)5.7 子函数和私有函数5.8 总结 5. 自定义…...
C++速通LeetCode简单第20题-多数元素
方法一:暴力解法,放multiset中排序,然后依次count统计,不满足条件的值erase清除。 class Solution { public:int majorityElement(vector<int>& nums) {int ans 0;multiset<int> s;for(int i 0;i < nums.s…...
回收站永久删除的文件还能恢复吗?教你恢复技巧
在数字时代,电脑是我们工作、学习和娱乐的重要工具。然而,随着我们对电脑的频繁使用,误删文件的情况也时有发生。当我们在回收站中不小心永久删除了某个重要文件时,内心可能会充满焦虑和疑惑:这些文件还能恢复吗&#…...
Python Web 微服务架构全面解析与实战指南
Python Web 微服务架构全面解析与实战指南 目录 🏗️ 微服务基础概念 微服务架构与单体架构的对比微服务的优点与挑战 🔄 服务间通信 使用REST、gRPC或消息队列实现服务通信API网关的使用(如Kong、Traefik) 🔍 服务…...
SEAFARING靶场漏洞攻略
寻找漏洞 一,我们打开页面 第一个漏洞 xss漏洞 1.在登录页面显示有弹窗 第二个漏洞 sql注入漏洞 1.在输入框的地方输入-1 union select 1,2,3#我们来查看他的回显点 2.查看数据库表名 -1 union select 1,database(),3# 3.查看表名 -1 union select 1,2,group…...
ROS 编程入门的介绍
2.1 创建 ROS 功能包 ROS(Robot Operating System)是一种开源的机器人软件框架,广泛用于机器人开发中。通过使用 ROS,开发者可以轻松创建和管理机器人应用程序。在本节中,我们将介绍如何创建一个 ROS 功能包并实现一些…...
第十一章 抽象类与接口
一、抽象类和抽象方法 抽象类:使用abstract修饰的类 抽象方法:在类中没有方法体的方法,称为抽象方法,抽象方法用abstract修饰 抽象类中可以没有抽象方法,包含抽象方法的类必是抽象类 如果子类没有实现父类中的全部…...
请问企业的八大金刚系统是哪些?有什么共同点和区别?
我的理解的八大金刚包括:MES、ERP、WMS、OMS、CRM、SCM、SRM、PLM。 这些系统的主要功能及运用领域是哪些方面?他们互相之前有什么区别?选择时哪些是企业可能根据自身需求选择的必选项目或可选项目? 由于某些系统的必选性取决于企业的具体业…...
【入门】配置 Java 应用程序的完整指南
前言: Java 是一种广泛使用的编程语言,具备跨平台的特性,使得其应用程序可以在多种环境中高效运行。本文将介绍如何将 Java 应用程序从开发环境部署到生产环境,确保其能够稳定、稳定地运行运行。 确定运行环境 Java程序可以运行…...
flutter widget 设置GestureDetector点击无效
有可能是被上层的widget挡住了,虽然你看得到这个widget,但是操作不到。使用相对布局Stack要特别注意,这种布局会和Android一样,先写的布局放在下层,后写的,如果范围较大的话,会盖在之前的widget…...
基于SpringBoot的在线教育平台的设计与实现
文未可获取一份本项目的java源码和数据库参考。 选题的背景与意义: 随着互联网时代信息技术的不断发展,线下已经产生了很多IT技术的培训机构,但是价格却十分昂贵并且需要人们持续不断的去具体培训地点学习,因此更需要一个课程优…...
Django_Vue3_ElementUI_Release_004_使用nginx部署
1. nginx安装配置 1.1 下载nginx Download nginx 1.2 测试一下 1.3 进入nginx用命令操作 2. 部署 2.1 前端部署 2.1.1 修改nginx监听配置 …conf/nginx.conf http {... # 这里不进行修改server {listen 8010; # 监听 80 端口server_name 192.168.10.24; # 输入服务器 ip…...
Java抽象类的案例
抽象类的特点总结 不能实例化:抽象类不能直接创建实例。它只能被继承。即,你不能用 new 关键字创建抽象类的对象。 可以包含抽象方法:抽象类可以包含一个或多个抽象方法(没有方法体),这些方法必须在子类中…...
运维工程师面试整理-数据库
在运维工程师的面试中,数据库管理和优化是一个非常重要的环节。面试官可能会通过数据库相关的问题来评估你在数据库部署、管理、备份、性能优化以及故障排除方面的能力。以下是关于数据库部分的详细内容,帮助你更好地准备面试。 1. 数据库基础 ● 常见数据库类型 ○ 关系型数…...
技术速递|6000 万次 Copilot 代码审查 且仍在持续增长
作者:Ria Gopu & David Apirian排版:Alan WangCopilot 代码审查如何帮助团队跟上 AI 加速带来的代码变更。自去年 4 月我们首次推出 Copilot 代码审查(CCR)以来,其使用量已增长了 10 倍,目前已占 GitHu…...
PasteMD模板功能详解:创建个性化转换规则
PasteMD模板功能详解:创建个性化转换规则 你是不是经常从AI对话或者网页上复制内容到Word时,格式总是乱七八糟?公式变成乱码,表格错位,代码块失去高亮?PasteMD就是专门解决这个问题的神器,而它…...
从电子管到全固态:中波广播发射机核心技术演进与选型指南
1. 中波广播发射机的前世今生 第一次见到中波发射机是在十年前参观某省级广播电台时,那座两层楼高的电子管设备让我印象深刻——嗡嗡作响的风扇、散发着热量的金属外壳、闪烁着微光的电子管,活像科幻电影里的场景。如今这种"大家伙"已经逐渐被…...
【AI】《Explainable Machine Learning》(2)
文章目录1、Global Explanation:explain the whole model2、局部解释(Local Explanation) vs 全局解释(Global Explanation)3、参考1、Global Explanation:explain the whole model 之前讲的是 local expl…...
MogFace人脸检测模型-large应用指南:从图片上传到结果分析,手把手教学
MogFace人脸检测模型-large应用指南:从图片上传到结果分析,手把手教学 1. 认识MogFace-large:为什么选择这个人脸检测模型 在开始实际操作之前,我们先简单了解下MogFace-large的核心优势。这个模型已经在Wider Face六项榜单上霸榜…...
OFA视觉蕴含模型效果展示:抽象艺术作品与评论文本关联性
OFA视觉蕴含模型效果展示:抽象艺术作品与评论文本关联性 1. 引言:当抽象艺术遇见智能理解 想象一下这样的场景:你站在一幅抽象画前,画布上是狂放的笔触和难以名状的色彩组合。旁边有人评论说:"这幅画表达了宇宙…...
QT5实战:如何用QTreeView打造层级分明的下拉菜单(附完整代码)
QT5实战:用QTreeView构建层级下拉菜单的工程化实现 在桌面应用开发中,标准的下拉菜单往往难以应对复杂的层级数据展示需求。想象一下文件浏览器中的树形目录、多级分类的商品筛选器,或是组织架构中的部门-人员选择场景——这些都需要更强大的…...
AMD笔记本性能优化与温度控制完全指南:使用G-Helper实现CPU降压调优
AMD笔记本性能优化与温度控制完全指南:使用G-Helper实现CPU降压调优 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other mod…...
从七鳃鳗到潜水器:手把手教你用Python生态学模型搞定2024美赛A、B题
从七鳃鳗到潜水器:Python生态学建模实战指南 数学建模竞赛中,生态学问题往往让参赛者望而生畏——复杂的生物系统、多变的环境参数、非线性相互作用,这些要素叠加起来容易让人陷入理论推导的泥潭。但换个角度看,这正是Python科学计…...
GLM-OCR实操手册:Web界面上传PNG/JPG/WEBP三格式兼容性验证与建议
GLM-OCR实操手册:Web界面上传PNG/JPG/WEBP三格式兼容性验证与建议 1. 项目概述与测试背景 GLM-OCR是一个基于先进多模态架构的OCR识别模型,专门为处理复杂文档而设计。它不仅能识别普通文字,还能准确识别表格结构和数学公式,在实…...
