我只针对c++码农们讲,其他语言不了解不过应该大同小异。曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX)。
现在我可以负责任的告诉你,把类型名写在前面'''''屁'''''用都没有,对你没看错,就是这么坚决。原因如下:

1.现代的编译器早已经可以明显看出任意变量的类型,你把类型写在前面除了增加代码长度外没有任何好处。
2.真正的匈牙利命名法,是要

标注变量的种类(kind)而不是类型(type)

这有很大区别。举例:int door_width 表明这是门的宽度,而int nWidth狗屁都不是!写明种类有何好处呢?其中一大好处就是可以明显的看出错误并且使得代码更易读。举例:门宽:int door_width, 车长度:int car_length.当你写如下代码- int door_area = door_width * car_length; 这句代码本意是计算门的面积,但是当你看到代码,用door_width × car_length明显看出car和door不是一个种类,很容易看出错误。而如果你用nWidth × nLength那么恭喜你,除了能看出来类型是个int型之外,你狗屁错误也看不到。这点在代码很多很长的时候尤其突出。

所以,如果使用匈牙利命名法,请理解他的本意,是kind不是type!当然如果有人变态到把类型种类都写上我只能说你应该换个60吋显示器才能看全代码了。

转载于:https://www.cnblogs.com/lebronjames/p/3267291.html

c++ 请抛弃匈牙利命名法 - 变量命名代码风格的建议。相关推荐

  1. 骆驼命名法变量命名规范——匈牙利命名法、骆驼命名法、帕斯卡命名法、下划线命名法

    骆峰式命名法(Camel-Case)是电脑程式编写时的一套命名规则(惯例). 骆峰式命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时 ,第一个单词以小写字母开始:第二个单词 ...

  2. 匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法 C#命名规范

    一.匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中. Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序 ...

  3. 驼峰命名法等命名规范

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  4. 常用命名法:骆驼命名法,匈牙利命名法和帕斯卡命名法

    骆驼式命令法(Camel): 正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数: 程序代码 printEmployeePa ...

  5. 骆驼命名法,帕斯卡命名法与下划线命名法

    骆驼式命名法: 正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字.例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数: 插入代码:        printEmployee ...

  6. 帕斯卡命名法 pascal命名法

    命名规则: 当变量名和函式名称是由二个或二个以上单字连结在一起,而构成的唯一识别字时,用以增加变量和函式的可读性. 单字之间不以空格断开或连接号(-).底线(_)连结,第一个单字首字母采用大写字母:后 ...

  7. 变量命名规范--匈牙利命名法,骆驼命名法,帕斯卡命名法

     一.匈牙利(Hungarian)命名法: 广泛应用于像MicrosoftWindows这样的环境中.Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 ...

  8. 编程参考 - 编程中给变量起名时如何选择前缀,以及匈牙利命名法等

    我最开始当程序员用C语言写代码,公司里推行编码规范,变量的前缀都是有规定的. 比如整型变量,前面都是 u8Name, i8Name, u16Name, i16Name之类的. 尤其是嵌入式编程,涉及到 ...

  9. 编程命名规则:驼峰命名法和匈牙利命名法

    1.驼峰命名法(Camel-Case)       驼峰命名法(Camel-Case)是电脑程序编写时的一套命名规则(惯例). 程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较 ...

最新文章

  1. 开源实时日志分析ELK
  2. CSS3与动画有关的属性transition、animation、transform对比
  3. 文件格式和扩展名不匹配.文件可能已损坏_自媒体良器:音频文件批处理,FFmpeg一行搞定!果断收藏...
  4. Tomcat中的线程池(APR和ThreadPool)
  5. oracle 查看 用户,用户权限,用户表空间,用户默认表空间
  6. hdu4336-Card Collector【min-max容斥,期望概率】
  7. nginx 二进制包安装mysql_二进制安装mysql5.7
  8. zookeeper单节点部署
  9. 存量电力系统_RCR新文:中国电力基础设施发展的物质存量和流量
  10. 【meitong】Windows系统受损切莫将就使用 如何快速修复
  11. gnuwin32从全量备份中单表还原_入门MySQL——备份与恢复
  12. mysql集群原理剖析
  13. 自信息量,熵及其性质
  14. 90行代码爬取链家广州二手房相关信息
  15. 三维空间点到原点距离python_如何计算三维空间中两点之间的距离?
  16. PB程序中在普通激光打印机上实现条码打印
  17. 开机自检(POST)
  18. win10安装kafka kafka_2.13-2.8.1
  19. supervisor的使用与管理
  20. 易语言调用大漠插件实现多线程后台绑定游戏窗口和打怪

热门文章

  1. ZF2系列 – Zend Framework 2 MVC實作 (Part 3)
  2. 网页弹出窗口代码【来源于网络】
  3. python 加载mat文件
  4. python os.path.exists判断文件或文件夹是否存在
  5. BeanUtils包的使用
  6. java nginx https_docker nginx 配置ssl,实现https
  7. fasttext 文本分类_一文综述经典的深度文本分类方法
  8. 计算机应用昨早领域,计算机应用-第1章.ppt
  9. !doctype html报错h5,【Web前端问题】javascript import 报错
  10. 购买阿里云ECS服务器忘记终端管理密码或者没有设置