zoukankan      html  css  js  c++  java
  • 编程中三种命名方法——匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法

    代码风格是一个可重不重要的东西,虽然,不影响代码正确性,但是其实,非常的重要,通常在项目中,不能随便写代码,需要有一点的规范,命名法便是其中一个比较重要的一点。

    通常我自己有一套命名法,结合匈牙利法(主要是数据类型这块,因为嵌入式,数据类型比较重要,毕竟资源比较少的),其次是其他两种方法结合,下面说说主要的三种命名法。

    以下文字为转载的,说的比较清晰,很多人已经逐步抛弃匈牙利命名法,因为缩写不易懂,而且现在命名也不行定长度,不想以前,命名长度都是尽量短。时代在进步~

    一、匈牙利命名法:

    广泛应用于象Microsoft Windows这样的环境中。

    Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

    匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

    匈牙利命名法中常用的小写字母的前缀:

    前 缀 类  型
    a 数组 (Array)
    b 布尔值 (Boolean)
    by 字节 (Byte)
    c 有符号字符 (Char)
    cb 无符号字符 (Char Byte,没有多少人用)
    cr 颜色参考值 (ColorRef)
    cx,cy 坐标差(长度 ShortInt)
    dw Double Word
    fn 函数
    h Handle(句柄)
    i 整型
    l 长整型 (Long Int)
    lp Long Pointer
    m_ 类的成员
    n 短整型 (Short Int)
    np Near Pointer
    p Pointer
    s 字符串型
    sz 以null做结尾的字符串型 (String with Zero End)
    w Word

    二、骆驼命名法: (camel方法)

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

    printEmployeePaychecks();

    print_employee_paychecks();
    第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。

    骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

    三、帕斯卡(pascal)命名法:

    与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

    如:public void DisplayInfo();string UserName;
    二者都是采用了帕斯卡命名法.

    在C#中,以帕斯卡命名法和骆驼命名法居多。

    简单说

    MyData 就是一个帕斯卡命名的示例
    而myData是一个骆驼命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼而iMyData是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途.


    作者:乖乖果效36
    链接:https://www.jianshu.com/p/5ac0961b5465
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    CGI编程完全手册(转)
    Linux下读写芯片的I2C寄存器(转)
    Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
    H264中的SPS、PPS提取与作用(转)
    H264码流打包分析(精华)--转
    嵌入式Linux USB WIFI驱动的移植(转)
    推荐一款技术人必备的接口测试神器:Apifox
    Java 设置、删除、获取Word文档背景(基于Spire.Cloud.SDK for Java)
    Java 添加、删除、格式化Word中的图片( 基于Spire.Cloud.SDK for Java )
    Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12264627.html
Copyright © 2011-2022 走看看