关于优化(1)

本文有自己想到的也有书中或者网上看到的,只是为了记录,不做商业用途,所以就不一一标明出处,若有侵犯请私信。

1.注释

1.在声明类型的时候,注释中要说明这个类型按顺序存储了什么数据,否则重看代码时会忘记类型中都存了什么类型的数据。

2.当一行可以说完时用单行注释;当出现代码案例或者长句时用界定符对注释;不必刻意把单行注释和界定符对注释统一,按思路顺序写即可

2.删去多余变量

1.当有a、b变量始终满足:a和b变量互换不影响程序结果时,可以把a、b合并为一个变量。

例子:

#include 
#include "Sales_item.h"
int main()
{
	//*Sales_item book1,book2 ,sumbook;//book1记录上一条销售记录;book2用于记录正在录入的销售记录;sumbook用于记录总销售额
	Sales_item book1, book2;//Sales_item按顺序存储ISBN号、售出数、销售单价。输出按顺序是ISBN号、售出数、总销售额,平均价格
	if (std::cin >> book1)//保证输入的数据至少有两条
	{
		//*sumbook = book1;//初始化总销售额
		while (std::cin >> book2)
		{
			if (book1.isbn() == book2.isbn())//如果两条记录的ISBN号一致
			{
				book1 += book2;//1.更新总销售额
				               //2.这里不能直接输出结果---否则当最后一个数据是输入数据中唯一一个不同的时候,就会输出两次
			                   //3.如果用//*号里的三变量程序,这里应该变成sumbook += book2(没必要写成sumbook = sumbook + book2了,这里和P20-1.5.1情况不一样)
			}
			else//如果两条记录的ISBN号不一致
			{
				std::cout << "   " << book1 << std::endl;//输出新的总销售额(当前的总销售额在下面输出,这里是输出新的)
				book1 = book2;//重置总销售额
				//*book1 = book2;//重置判断ISBN号是否一致的记录
			}
		}
		std::cout << "   " << book1 << std::endl;//1.输出总销售额
												 //2.如果用三变量的程序,这样改book1为sumbook
	}
	else//没有输入正确的数据就输出警告
	{
		std::cerr << "no data" << std::endl;
		system("pause");
		return -1;//要记住,没在循环体内加返回值,循环结束后程序不一定结束;只有加了,才能实现循环结束后程序马上结束的功能
	}

3.名字与定义问题

1.名字要简洁地说明内容

2.标识符要突出该变量的作用;变量名一般用小写字母;用户自定义的类名一般以大写字母开头;标识符若由多个单词组成,写成a_b或者andBoos形式加以区分(最好别连续两个下划线或者下划线后大写字母开头,因为标准库中预留的一些名称很可能会与之冲突,出现未定义行为)。【标识符=变量名、函数名、etc】

3.第一次使用变量时再定义它。

4.指针

1.必须清楚任意给定的指针是否是有效的。

2.尽量等定义了对象之后再定义指向它的指针,实在不知道时,将其初始化为nullptr。

5.头文件的自定义类

1.基于头文件中类的名字来构建保护符的名字。以确保其唯一性。为了避免与程序中其它实体发生名字冲突,一般把预处理变量名字全部大写

2.头文件技术还没有被包含在任何其它头文件中,也应该设置保护符

以上两点原因见C++ primer 5th 中文版P68

wuduojia
原文地址:https://www.cnblogs.com/wuduojia/p/7511966.html