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中,使用了单行注释。

所以在程序中写注释是一个很重要的事情,如果不写注释,将大大降低程序的可性读和易维护性。因此一定要养成顺手写注释的习惯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值