匈牙利命名法的优缺点

匈牙利约定优点
匈牙利约定与其它命名约定一样,拥有由命名约定所带来的一切共同优点。由于有这样
多的标准名称,因此在任何一个单个子程序或程序中要特殊记忆的名字是非常少的。匈牙利
约定完全可以在不同项目中采用。
匈牙利约定可以使得在命名中容易产生定义的区域变得准确清楚。特别是约定中对
First,Min,Last,Max 和 Lim 的准确区分在实际中是尤其有帮助的。匈牙利约定可以使
人对编译程序无法检查的抽象数据类型进行检查:cpaReformat[i]很可能是错误的,因为
cpaReformat 不是数组,而 apaReformat[i]则可能是正确的,因为 apaReformat[i]是数
组。
匈牙利约定可以在类型不严格的语言或环境中对类型进行说明。例如,在 Windows 环
境下编程时,需要你放弃许多类型,这极大地限制了编译程序进行严格类型检查的能力。
而建立约定则可以对环境的这一弱点作出补偿,匈牙利约定还可以使名称更简洁,可以用
CMedals 而不用 TotalMedals 来代表奖牌的数量,使用 pNewScore,而不是用
NewScorePtr 命名一个新分数指针。

匈牙利约定缺点
一些版本的匈牙利约定事实上忽视了用抽象数据类型作为基本类型。它们以程序语言
中整型、长整型、浮点数和字符串为基础来建立基本类型。匈牙利约定基本类型事实上是
没有什么价值的,因为它使得程序员陷入对类型进行人工检查的困扰之中,而不是让编译
程序对类型进行更加快速而又准确的检查。
这种形式匈牙利约定的另一个问题是它把数据的意义与其表现联系在一起。比如,说
明某一变量是整型的,把它改为长整型的时,不得不改动这一变量的名称。
匈牙利约定的最后一个问题是它鼓励了懒惰、不含什么信息的变量名的出现。当程序
员用hwnd 来命名对窗口的操作时,往往忽视了他所指的到底是哪种窗口、对话框、菜单还
是帮助区的屏幕?显然用 hwndmenu 要比 hwnd 清楚得多。以变量的意义为代价来获得对
其类型的精确描述显然是愚蠢的。不过好在可以用加限定词的办法来同时获得完整的意义
和精确的类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抢占式和非抢占式的进程调度

非抢占式(Nonpreemptive) 让进程运行直到结束或阻塞的调度方式 容易实现 适合专用系统,不适合通用系统 抢占式(Preemptive) 允许将逻辑上可继续运行的在运行过程暂停的调度方式 可防止单一进程长时间独占…

图形学基础知识

本篇主要给大家介绍图形学基础知识,了解Unity图像渲染机制,以及图像渲染管线流程。 主要是因为伴随着VR/AR的飞速发展,为了满足VR高清高帧率的极限渲染,着色器编程(Shader)也成为了Unity程序开发人员的必备…

12种排序算法

https://blog.csdn.net/love_gaohz/article/details/46673907 转载于:https://www.cnblogs.com/kongk/p/8641077.html

计算机应用基础精品课程申报表,《计算机应用基础》精品课程申报书(修改意见)...

4-3教学条件(含教材使用与建设;促进学生主动学习的扩充性资料使用情况;配套实验教材的教学效果;实践性教学环境;网络教学环境(网络平台,网络课件))突出的地方用红色表示。1.教材建设本课程目前使用的教材是…

用博客见证自己的成长

感谢CSDN博客,给我提供了一个学习交流的平台,自从开通博客以来,感觉自己的生活一下充实了很多。通过写博客来积累知识的同时,也给生活带来的很多的喜悦。 第一次发表博客;第一次有访客;第一次得到博客勋章&…

调度队列模型

调度队列模型及准则 1 仅有进程调度的调度队列模型: 每个进程在执行时都可能出现以下三种情况: (1) 任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态 (2) 任务在本次分得的时间片内尚未完成,OS便将该任务再放入…

linux基础命令(-)

最近在学linux,老师课堂上讲的估计下课就忘了,现整理下来以备不时之需。 PS1x //修改终端提示符su root //切换用户ssh root192.168.116.129 //加密远程连接 yum -y install sl //小火车yum -y install oneko //鼠标兔子date //查看日期cal 11 19…

数据库相关整理

一、MySQL 1、mysql如何做分页 mysql数据库做分页用limit关键字,它后面跟两个参数startIndex和pageSize 2、mysql引擎有哪些,各自的特点是什么? http://www.cnblogs.com/ctztake/p/8453990.html 3、数据库怎么建立索引 create index account_…

api接口怎么对接_系统对接项目管理方面怎么做?从一次项目接口对接说起

故事:最近业务方有一个新的业务合作模式,需要与第三方公司进行系统的对接,原本预期2周可以完成的项目,最后要用到3周时间才能完成,出现的现象其实还挺典型的,也不是没遇到过,因为自己这边的进度…

周转时间 平均周转时间 带权周转时间 平均带权周转时间

1.周转时间 2.平均周转时间 平均周转时间是对n个而言的 3.带权周转时间 真正的运行时间指的是进程占有处理机的时间 4.平均带权周转时间 即n个平均的带权周转时间

程序员第一定律:关于技能与收入

在软件这个行业里有些规则是很有杀伤力的,比如很有名的摩尔定律。 总结出这些规则的意义在于可以大致的照明方向,免得努力来努力去却走到了阴沟里。 现实中种种利益纷争、观点之争看似纷繁,但在大时间尺度下来看却都是规则的实现手段。 这就好…

快速高效 | iOS身份证识别

一:简介 demo新增身份证国徽面识别,可识别出签发机关和有效期。 快捷支付涉及到方方面面,同时安全问题既是用户所关心的,也是制作者不容忽视的重要部分。 比如涉及到支付和金钱的app,商户端app等等,都需要进…

用计算机怎样给文章分解,计算机试卷6分解..pdf

计算机试卷 6一、单选题1. 第三代计算机采用 ______ 作为主要的电子器件。A. 电子管B. 晶体管C.大规模集成电路D.小规模集成电路答案: D2. 数据是信息的载体,包括数值、文字、语言、图形和 ______等不同形式。A. 多媒体B.表达式C. 图像D. 函数答案&#…

unity应用开发实战案例_「简历」STAR法则的实战应用,附手把手教学案例

关注应届生求职网,了解更多求职信息本文共2072字,预计阅读需3分钟本期分享导师-Anna_青云导师51Job职场导师知乎职场千赞答主多年猎头及多行业人力资源管理经历职业生涯规划师、职业生涯咨询师、心理咨询师终身学习践行者、斜杠青年、职场教练在简历优化…

一起看一下主流应用使用了哪些三方库

背景 我们在进行Android开发时往往会面临技术选型的问题, 面对如此多的开源框架如何进行选择、选择的标准是什么,这是一个值得思考的问题. 为此我在后台爬取了6000多个主流应用,逐个反编译统计它们使用了哪些开源框架,因此做了一个款应用 基本思路 首先我们要有Apk才可以进行分…

黑客——技术的凝聚者???

写在前面: 不知道在中国,有多少人能真正的理解什么是hack,当hack被加上商业的成分就失去了本来的色彩,如今多如繁星的大小类黑客站点如雨后春笋般出现,不过是否有技术,统统叫hack,拿着别人的工具去砍掉几个…

SOA架构设计经验分享—架构、职责、数据一致性

1.背景介绍2.SOA的架构层次 2.1.应用服务(原子服务)2.2.组合服务2.3.业务服务(编排服务)3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合4.运用DDDGRASP进行分析和设计(防止主观的判断导致错误的假设&a…

计算机设备没有音频,电脑没有音频设备怎么办

有些朋友的的电脑没有声音,任务栏右下角也没有小喇叭声音图标,进入到控制面板里面的声音选项里面去设置,在“音量”项目中显示“没有音频设备”,很多朋友遇到这种情况不知道应该怎么解决,今天笔者就电脑没有音频设备怎…

HDLC协议概述

一 HDLC概述 1.1 HDLC的发展历史 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control…