美文网首页
心声0201 匈牙利命名法由来

心声0201 匈牙利命名法由来

作者: 良友知音 | 来源:发表于2024-01-03 07:54 被阅读0次

    该命名规范,要求前缀字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,单词第一个字母大写。

    Ex

    int iMyAge;        #  "i": int

    char cMyName[10];  #  "c": char

    float fManHeight;  #  "f": float

    其他

    前缀类型还有:

    a      数组(Array)

    b      布尔值(Boolean)

    by     字节(Byte)

    c      有符号字符(Char)

    cb     无符号字符(Char Byte,并没有神马人用的)

    cr     颜色参考值(Color Ref)

    cx,cy  坐标差(长度 Short Int)

    dw     双字(Double Word)

    fn     函数(Function)

    h      Handle(句柄)

    i      整形(Int)

    l      长整型(Long Int)

    lp     长指针(Long Pointer)

    m_     类成员(Class Member)

    n      短整型(Short Int)

    np     近程指针(Near Pointer)

    p      指针(Pointer)

    s      字符串(String)

    sz     以 Null 做结尾的字符串型(String with Zero End)

    w      字(Word)

    创始人,西蒙尼

    只要看了代码,你就能知道它是不是我的团队写的,或者是不是受我的影响写的。

    这是因为我从1972年起写的代码都遵循特定的命名规范,许多人称之为“匈牙利命名法”。

    你一眼就能分辨出哪些代码是受我的影响写出来的,包括Microsoft Word、Multiplan和Bravo,以及其他许多遵循这些规范写成的程序。

    这里的“匈牙利”是句反话,因为这些命名规范其实是要让代码更易读。

    这个玩笑说的是程序看起来这么难读,说不定真是用匈牙利语写的。其实这套规范能够很好地控制程序中所有变量的命名。

    要是分解一个程序,把它放进磨床,然后对碎片进行分类,你就会发现程序的大部分都是名字。写下“apples + oranges”,你会发现名字“apples”有6个字符,运算符“+”只有1个字符,名字“oranges”有7个字符,一共14个字符,只有一个字符即加号与运算有关。

    因此,对我来说,要起到作用或有所改进,合乎逻辑的做法就是尽力完善程序的主要部分,也就是名字。

    “匈牙利命名法”是一种根据变量的属性自动为其创建名字的命名方法。这跟人们把当裁缝(tailor)的叫做泰勒(Taylor)以及把当铁匠(blacksmith)的叫做史密斯(Smith)非常相似。

    因此,面对一个具备某些属性的结构,不要随随便便地取个名字,然后让所有人去琢磨名字和属性之间有什么关联,你应该把属性本身用作结构的名字。

    这种方法有很多优点。首先,造个名字很容易,想到那些属性时,把它们写下来,名字自然就有了。

    第二,它很容易理解,因为当你读到某个变量时,从名字本身就能了解到与属性有关的大量信息。这些属性会越来越多,因此很难简明地描述它们。

    为此“匈牙利命名法”引入了一种缩写符号,以很小的空间就能展现具体属性。当然,这在不知情的人看来完全是一团乱麻,那个玩笑就是这么来的。 有些人认为,如果他们可以读出代码里的每个字,那么程序就是可读的。

    实际上,这种意义上的可读性并不可取。没有人会拿着代码清单,站到演讲台上大声朗读程序。关键在于理解。只是能阅读单词并发出音来,这毫无用处。

    当人们看到采用“匈牙利命名法”的代码清单时,他们发现这些词很难念,可能就会认为代码不是可读的。但实际上,由于名字和属性之间存在关联,它更容易理解,也更便于沟通。

    现在使用匈牙利命名法编程的人,越来越多。

    相关文章

      网友评论

          本文标题:心声0201 匈牙利命名法由来

          本文链接:https://www.haomeiwen.com/subject/gjmmndtx.html