白话C++编程系列之十一 规范篇
上回说到《白话C++编程系列之十: 入口函数篇》
, 我们知道了程序的入口函数通常为main, 就像逛超市, 我们必须得知道它的入口, 才能进去shopping一样, 有了这个main我们写的程序就知道从哪里开始运行了.
怎么样?您对入口函数的概念还深么?main函数可是我们每个程序都会有的呀.
您有没有动手去实践一下? 先让我们来一起复习一个这个概念吧. 也欢迎您的留言和提问。
入口函数main
入口函数 是C++程序运行时首先会被调用的函数, 名字通常为main。就像超市的入口。找到这个入口, 我们就可以愉快地shopping了。
Today, 我们来和您学习另外一个话题 编程规范
1.编程规范是啥?
编程规范就是编程中应该遵行的规则。它类似交规。按照交规进行, 交通就更高效、方便、快捷, 生活也更幸福。相反的结果您也一定能想象得到。
我们这里先狭义的讲几个规范:
命名规范 如何命名变量, 类名, 常量, 函数名等等.
文件存放目录 文件, 文件夹等等.
提交规范 提交代码, 注释, 编译通过等等.
编码规范 注释量, 函数注释, 特殊功能注释等等.
广义的规范, 可以泛指一切编程中要遵行的规则. 其实我们目前所有学习的东西都是编程的规则.
规则就像是法律或者科学规律,只有更懂它,才能更好的用它,遵守它,否则一定会受到惩罚或者遭遇困难.
来看例子。
// D:\dev\jinLab\p11_rules\p11_rules\p11_rules.cpp
//编程规范
/*
@Author: Albert 小宁
@Web: http://jinLab.com
@WeChatOfficalAccount: 小宁静致远
@Date: 2017-12-10
@KS: https://t.xiaomiquan.com/IeieiEm
*/
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <array>
#include <iostream>
#include <string>
#include "stdafx.h"
//常量以大写形式来写
const double CONST_dPI = 3.1415926;
// 1.3函数命名:
// 首字母大写
//单词的首字母大写
// Get
// Max
//GetMax
//注释: 获取两个整形的最大者
int GetMax( int iLeft, int iRight )
{
if ( iLeft > iRight )
return iLeft;
return iRight;
}
//找出一堆数中 比iMe 只大一的一个数字
// 找不到返回 iMe
// 此函数的返回值为 int(整形)
int GetOneBigThanMe( std::array<int, 10 > const aryNumbers, int iMe )
{
for ( int i = 0; i < 10; ++i )
{
//这里从数组的开始的位置找,
//只要找到第一个,我们就返回
//不接着找第二个
if ( 1 + iMe == aryNumbers[ i ] )
// return 就是返回的意思.
//这里返回 aryNumbers 中的第 i个数字.
// C++中, 数组的索引(下标)从0开始
return aryNumbers[ i ];
}
//没找到,返回 iMe.
return iMe;
}
int main( int argc, char * argv[ ] )
{
/*
1. **命名规范** 如何命名变量, 类名, 常量, 函数名等等.
*/
/*
1.1 变量命名: 以类型开头 i 表示整形
f 表示 浮点数
*/
// 整形变量 i007
//值为 7
int i007 = 7;
//浮点数: 圆周率 π
double dPi = CONST_dPI;
/*
1.2 常量
*/
int iFive = 5;
int iMax = GetMax( i007, iFive );
std::cout << "Bigger one is:" << iMax << std::endl;
/*
2. **提交规范** 提交代码, 注释, 编译通过等等.
*/
//2.1 提交代码?
//将代码提交到代码repository中进行管理和跟踪
//2.2 注释: 加上注释让自己,
//更让别人和将来的自己明白 自己现在为什么这样写这个代码.
//2.3 编译通过: 提交到 代码repository中的代码必须至少要编译通过,
//不能提交不能编译通过的代码,因为代码仓库不是垃圾箱
/*
3. **编码规范** 注释量, 函数注释, 特殊功能注释等等.
*/
/*
3.1 注释量:
注释不用写的太多,否则会比较麻烦,影响阅读.
最好用一句话能说明的不能2句话来说
当然,对一些关键的参数或代码部分 可以多说几句
*/
//3.2 函数注释:
// 参见前面的 GetMax函数:
// 它的注释就是: 获取两个整形的最大者
// 加个注释之后, 以后就可以不看函数的具体内容
// 就可以知道 函数的功能了.否则就要花时间去看这个函数的功能.
/*
3.3 特殊功能注释
*/
// 生成一个比100小的一个随机数
//以当前时间为seed 来生成一个随机数
std::srand( std::time( 0 ) );
int iMe = std::rand( ) % 100;
//定义有10个元素的整形数组
std::array< int, 10 > aryNumbers = { 1, 66, 5, 77, 163, 8, 123, 33, 13, 3 };
int result = GetOneBigThanMe( aryNumbers, iMe );
std::cout << "Me: " << iMe << std::endl;
if ( result != iMe )
std::cout << "The one ONLY one bigger than "
<< iMe << " is " << result << std::endl;
return 0;
}
2.规范的应用?(举个例子)
上面的代码和图片中已经说明了规范的例子.这里我给大家来几张 svn 提交代码的图吧.
来自其它项目的提交代码到svn的图
代码修改比较图
代码提交注释图
代码提交完成图
3.代码规范实践?(动手操作)
我想您看了上图的例子,也一定想自己动手来践行一下吧.太好了.
我们就是要在编程中遵守这些规则, 这样我们的程序会更易读, 更规范, 更易维护和扩展.
撸起袖子加油干吧!
这里我把程序的可能的输出结果图也发给您.
(程序每次运行的结果都不太一样呀.你的结果可能和我的结果不一样.)
怎么样?哈哈
恭喜您, 今天您和我一起学习了编程的规范的概念.
编程规范
就是编程中应该遵行的规则。它类似交规。
按照交规进行, 交通就更高效、方便、快捷, 生活也更幸福。相反的结果您也一定能想象得到。
编程规范的应用
编程规范的实践
这些规范还是很好理解的吧? 快动手践行一下吧,您将收获成长. 如何您有什么想法,请随时在文章留言区留言^_^
白话C++编程系列之:下期预告
白话C++编程系列之十二: 运算符篇
* 1. 运算符是啥?
* 2. 运算符怎么用?
* 3. 运算符实践?
延伸 相关阅读
svn
即Subversion: https://subversion.apache.org: It is an open source version control system. 一个开源代码管理系统.
有了它,我们对代码可以进行集中管理: 提交,查找,删除,对比,合并,回滚,查看历史,建立tag, 分支等操作.
这里给大家分享一张我的代码提交图.
让自己配得上想要得到的东西 -- Charlie Munger https://en.wikipedia.org/wiki/Charlie_Munger
反之亦然: 东西会给配得上它的人 -- Ablert Jin http://jinLab.com
《白话C++编程系列》
Wanna learn English in USA? Click this link:
Talk English in USA: https://t.xiaomiquan.com/EuBqfMb
区块链投资/板砖/挖矿: https://t.xiaomiquan.com/iQV37MB
对医学感兴趣? 三体·生命依托
创业?动画片?国产? 大鱼海棠: 我的创业梦
Robinson Crusoe|鲁滨逊漂流记-Chapter 2 您知道的都2了, for 1? click to find and see, listen.
请大家多多动手,让编程也成为您的一种爱好和生产力。
请关注微信公众号 小宁静致远 或扫码关注我, 欢迎、感激传播! ^_^
期待和您多交流、共成长。谢谢!
精灵实验室? http://jinLab.com
留言区就是您的天下,欢迎吐槽、拍砖!
Why NOT let programming a skill of you?
Please follow my WeChat Official Account 小宁静致远 or scan the 2D code above to follow me & thanks for sharing me to your friends! ^_^
Hope we can communicate each other & improve ourselves together. Thanks!
JinLab? http://jinLab.com
Any ideas? Please add comments to the article!
学习C++? Lear C++? 请加入我的知识星球: Join my Knowledge Space:
白话C++编程:C++入门与实践 https://t.xiaomiquan.com/IeieiEm
oral C++ programming and practice! https://t.xiaomiquan.com/IeieiEm
不让好机会溜走,飞向白话C++编程知识星球!
鼓励我的创作? Encourage me?