C++代码书写规范 与 读《数学之美》有感

C++代码书写规范

(声明:本博客参考自简书网页https://www.jianshu.com/p/c1b6cf190e0b   以下内容是读后结合本人编程经验分享我对代码规范的理解和建议)

 一、前述

  代码作为程序员与计算机沟通的工具,其重要性不言而喻,但在漫漫的编程长路中,不可能一直是自主编程的,小组合作是必不可少的。因此,代码的规范性由此就显得十分重要,倘若你书写了不规范、给人以直观丑陋感,那么你的搭档就难以修改你书写的代码,甚至会拒绝合作。因此,作为代码初学者,掌握必要的代码规范知识是最基本的,本博客以c++为例子,举例分析代码规范。

 二、实例分析

1. 善用空格与空行

  ①正确使用空格和空行能给人以舒适感,而不是一连串紧密的代码给人的压迫感。

  函数名之后不要留空格,否则形参表示不明显

  如:int Fun1(int x)  //建议书写

    int Fun2 (int x)  //不建议书写

 

  ②if、 for、 while等判断和循环使用到的关键字之后应留一个空格再跟左括号‘ (’,以突出关键字。

  如: if (i = 0)

 

  ③定义变量的逗号之后要留空格。在for语句中的分号其后要留空格。

  如:

 for (i=0; i<5; i++)

      int a, b;

 

 

  ④赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“ =”、“ +=” “>=”、“ <=”、“ +”、“ *”、“ %”、“ &&”、“ <<”、 “ ^”等前后应当加空格。

  如: a = b; a += 10;

 

  ⑤在实现函数时,函数与函数之间应加空行,以方便区分两个不同的函数。

  如:

复制代码
 void Fun1(int x)

  {

    //do something

  }

 

  void Fun2(double y)

  {

    //do something

  }
复制代码

 

 

  PS: 过分使用空格也不是好的代码规范,应适当使用,如这样就不合适:for( int i = 0 ; i < 10 ; i ++ ) 这样滥用空格给人很空的感觉。

 

2. 注意每行代码的内容

  一行代码就做一件事情,不要将所有功能压缩至一行语句中。

  如: 

复制代码
int main()

  {

    int num; double count; while (num <= 100) num++; return 0;  //不好的代码规范

  }

    int main()

  {

    int num;

    double count;

    while(num <= 100)

  {

    num++;

  }

    return 0;

  }
复制代码

 

 

3. 变量、函数名命名规范

  ①变量,函数,文件命名最好采用英文单词或词组,不要使用拼音,或者无意义的a b c之类的,用英文单词或其缩写命名能起到在缺少注释的情况下能够给阅读者起提示作用。

  ②类名和函数名用大写字母开头能和普通变量区分开。

  个人喜爱使用的命名规范:双驼峰命名法:

  双驼峰命名法就是当变量名由多个单词组合而成时,第一个单词以小写字母开始,第二、三、四……N个单词的首字母大写。例如:myFirstWord,这样的变量名看上去就像骆驼峰一样此起彼伏,既美观,又能突出由词组命名的变量,减小冲突命名的可能性。

 

4. 适时添加注释

  有时候读代码会跟不上编程者的思维,若代码旁边没有注释,就难以理解其意思,因此适当添加注释不仅能够让自己回忆某行、某段代码的用处,还能方面阅读者理解。

  建议在每个函数名的后面添加对该函数的功能进行解释的注释,同时建议在main函数的每一个循环也最好添加注释,让阅读者明白循环的作用。

 

  以上是我阅读参考博客的读后感和建议,希望自己能够好好记住这些规范,书写优美又实用的代码。

 

读《数学之美》有感

 

  在上大学之前,我认为一般人是不需要过多涉深这一方面的,中学期间不断接触的数学考试题也让我以为数学就是研究一些难以弄懂的东西。但当我接触到计算机这一专业时,才发现数学大有用处。今读《数学之美》大叹数学之高深又无处不在,数学之美妙又非常实用。《数学之美》一书向我展示了我们可以利用数学模型通过计算机解决一些生活上最普普通通的事情,而这有蕴含了无数科研价值和开发价值。

  首先,本书前面提到的统计语言模型、马尔可夫模型让我明白了通过数学建模可以解决翻译问题、语音识别问题等日常生活中的重要组成部分,而这些看似复杂的功能却可以通过数学建模分析出来,再通过计算机实现,这就不得不感叹数学在生活之美了;而尔后的图论更是借用欧拉图和哈希表来分析网络爬虫;信息熵和语言模型提供了解决信息问题的数学模型,辛格博士对问题解决坚持简单高效的原则让人明白不断设计算法的真谛。有趣的是, 书里面还介绍了余弦定理与新闻的关系,这在生活中明明是毫无瓜葛的两者却在数学之中有机结合起来了,通过余弦定理能够计算出新闻网页中的文本词汇频率/逆文本频率。本书的后部分主要讲述了如何深化马尔可夫模型来解决自然语言处理问题、介绍了密码学和香农定律,虽然部分学术知识我还不清楚,但却觉得与我所学的专业密切相关。

  虽然已经在计算机专业学习了一年了,但我大一接触算法知识并不多,有时候有一些灵机一动的想法却感叹自己能力太浅而无法实现,这些遗憾也留到了现在。而如今有这样一门课程让我能与算法密切接触,这让我燃起了再次用自己的编程能力去实现这一年来的遗憾。既然,自然语言处理、语音识别、翻译机制等高深复杂的大工程能够通过数学模型解析,那我有有信心通过学习算法知识实现自己的想法。上学期,数据结构老师曾和我们说过,软件 = 数据结构 + 算法,因此算法在软件开发中可以说是大脑在人体内的功能了,没有算法,就无法解决实际的问题,缺乏算法的软件就剩下了数据结构的空壳,就像失去了灵魂和思想的活死人。而在上学期我认为图这一数据结构相比线性结构复杂很多,设计的问题也很广,这一学期我希望自己能够实现简易的导航软件——优化最短、最优路径问题,这虽然在数据结构中尝试实现过,但却没有达到我之前预期的目标,因此希望自己能够在掌握贪心算法及其它重要算法后能实现这一软件。

转载于:https://www.cnblogs.com/besthunterhj/p/11461054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值