精华内容
下载资源
问答
  • C++类、结构体、函数、变量等命名规则详解

    万次阅读 多人点赞 2018-10-17 21:34:26
    编程越学越深,也慢慢了解到命名规范的重要性,在前面几个数据结构的示例中,大家也看到,命名也是有一定的规则的,这会方便...1、驼峰命名法 2、帕斯卡(Pascal)命名法 3、匈牙利命名法 4、下划线命名法 三...

    编程越学越深,也慢慢了解到命名规范的重要性,在前面几个数据结构的示例中,大家也看到,命名也是有一定的规则的,这会方便我们阅读代码,方便我们后期完善。今天就给大家总结一下常用的C++命名规则。希望对大家有所帮助。

    目录

    一、命名规范原则

    1、必循遵守的规则

    2、尽量做到的规则

    二、常用命名法

    1、驼峰命名法

    2、帕斯卡(Pascal)命名法

    3、匈牙利命名法

    4、下划线命名法

    三、不同类型常用命名规则

    1、类与对象

    2、函数

    3、变量

    4、常量、宏定义和枚举


    一、命名规范原则

    1、必循遵守的规则

    首先是总体的命名规范原则,是我们命名时必须要遵守的,不然程序会出现错误。

    1、变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。

    2、第一个字母不能是数字,例如 2L 这不是一个合法的C++变量。

    3、不能是c++关键字,例如不能用 class 、 int 这些单词来命名一个变量。

    常用C++关键字如下,不必死记硬背,多些代码,慢慢就熟练了。

    asm

    do

    if

    return

    typedef

    auto

    double

    inline

    short

    typeid

    bool

    dynamic_cast

    int

    signed

    typename

    break

    else

    long

    sizeof

    union

    case

    enum

    mutable

    static

    unsigned

    catch

    explicit

    namespace

    static_cast

    using

    char

    export

    new

    struct

    virtual

    class

    extern

    operator

    switch

    void

    const

    false

    private

    template

    volatile

    const_cast

    float

    protected

    this

    wchar_t

    continue

    for

    public

    throw

    while

    default

    friend

    register

    true

     

    delete

    goto

    reinterpret_cast

    try

    有些是我们不常见的,如果不确定是不是,第一种方式是命名的时候,看一下,以VS2015为例,如果我们定义这个变量有特殊颜色,比如蓝色

    说明这是关键字,当然像我们自己定义的有时候也会变色,具体的就看编译器怎么设置的了。第二种方式就是先命名,如果报错,说明这个命名是用了关键字。

    第三种就是尽量避免不确定的,实在不行用大写,C++目前的关键字均为小写。

    4、区分大小写,例如iA和ia是两个不同的变量。

    2、尽量做到的规则

    不遵守不会错,但是命名不是很规范。所以这块没有标准,只是我自己看的很多代码,很多书上讲的,然后自己总结。

    1、尽量用英文,不用拼音

    2、尽量用少的单词表达多的意思。虽然长度没有硬性要求,但是如果一个变量十多个字母还是不好看。有的书上说20字母以内,有个书上说尽量不超过30个字母,个人建议,控制在15个以内,如果英语不太好,大家可以通过变量命名多接触英语单词,如果英语水平较高,建议控制在10个以内。

    3、有含义的变量或者多处调用的变量,尽量用有含义的单词命名,不要用i,j,k这些单个字母命名。要不然别人看你的代码,很难理解变量含义,还容易出错。

    4、定义变量时,可以加上类型前缀。比如链表变量前面加上L,类前面加上C。

    LinkList LL ;//第一个L的含义是链表,作为前缀,第二个L的含义是变量名称
    class CPerson ;//第一个C的含义是类,作为前缀,后面Person的含义是变量名称

     5、同一个程序中,相同类型用同一种命名方法。例如变量用驼峰命名法,那所有的变量都用驼峰命名,类名都要求首字母大写,那所有的类名首字母都大写。

    二、常用命名法

    1、驼峰命名法

    指混合使用大小写字母来构成变量和函数的名字。当变量名或函数名是由一个或多个单词连结在一起构成的唯一识别字时第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母例如:myName、myAge,这样的变量名看上去就像骆驼峰一样此起彼伏,因此被称为驼峰命名法。

    int *treeBase;
    int elemNum;
    int treeSize;

    2、帕斯卡(Pascal)命名法

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

    int *TreeBase;
    int ElemNum;
    int TreeSize;

    3、匈牙利命名法

    匈牙利命名法是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼(Charles Simonyi) 提出的。它通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等这些符号可以多个同时使用,基本原则是:变量名=属性+类型+对象描述

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

    int *iTreeBase;
    int iElemNum;
    int iTreeSize;

    4、下划线命名法

    与驼峰命名法相似,通过一种方式将不同单词区分开,方便读懂变量含义。与驼峰命名法不同的是,驼峰命名法采用的是首字母大写区分,下划线命名法是在不同单词之间添加下划线。

    int *tree_base;
    int elem_num;
    int tree_size;

    三、不同类型常用命名规则

    对于C++固有类型,如类,函数,他们有各自的命名规则,当然不同公司有不同公司的命名要求,在这里说一下大多数要求,大家作为了解。

    1、类与对象

    类的名称一般以大写字母“C”开头,表明定义的是类,后跟一个或多个单词。为便于界定,每个单词的首字母要大写。类的命名推荐用"名词"或"形容词+名词"的形式。

    class CPerson;
    
    class CLittleCat;
    

    2、函数

    函数的名称由一个或多个单词组成。为便于界定,建议采用帕斯卡(Pascal)命名法,即每个单词的首字母要大写。

    int InitQueue(LinkQueue &LQ) ;
    
    int EnQueue(LinkQueue &LQ, int e);
    
    int DeQueue(LinkQueue &LQ, int &e);

    3、变量

    变量一般采用驼峰命名法,个人也比较喜欢驼峰命名法。

    4、常量、宏定义和枚举

    常量、宏定义和枚举一般都是所有字母大写,特别是宏定义,在不同字母之间,可以加上下划线,也可以不加。

    #define List_INIT_SIZE 100 
    #define LISTINCREMENT 10  
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define OVERFLOW -1
    
    int LENGTH  = 10;
    int LIST_MAX_SIZE = 50;
    

     

    展开全文
  • 1、命名约定 1.1 通用命名规则 函数命名,变量命名,文件命名要有描述性,少用缩写。...驼峰命名法 首字母小写,函数名中的每个逻辑断点都用大写字母来标记示例:myData 2 帕斯卡(Pascal)命名法 与...



    1、命名约定

    1.1 通用 命名规则

    函数命名变量命名文件命名要有描述性,少用缩写。
    注意,一些特定广为人知缩写是允许的,例如用i表示迭代变量(iteration)和用T表示模板参数(template)。

    目前主要有 4种命名风格:

    序号 类型 描述
    1 驼峰 命名法 首字母小写,每个逻辑断点都用大写字母来标记
    一般用于全局变量函数结构体变量对象名
    示例:myData
    2 帕斯卡(Pascal)命名法 与驼峰命名法类似,只是 首字母大写
    一般用于结构名类名
    示例:MyData
    3 下划线 命名法 函数名中的每个逻辑断点都用下划线 _分割
    C程序UNIX这样的环境中,它的使用非常普遍
    一般用于函数变量
    示例:my_data
    4 匈牙利 命名法 变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等
    示例:i_MyData

    1.2 文件名 命名规则

    文件名全部小写,可以包含下划线 _连字符 -,,依照项目的约定。如果没有约定。那么下划线 _更好。
    例如:my_useful_class.c

    1.3 变量 命名规则

    变量(包括函数参数) 和数据成员名一律小写,单词之间用下划线 _连接。
    成员变量以下划线结尾,但结构体的就不用。

    序号 类别 举例
    1 局部变量,函数参数 local_variable
    2 结构体内的变量 struct_data_member
    3 成员变量 class_data_member_

    1.4 类型 命名规则

    所有类型命名:结构体类型定义typedef),枚举类型模板参数,均使用相同约定,即以大写字母开始,每个单词首字母均大写,不包含下划线(帕斯卡命名法)。例如:

    class BookCartoon {
    	string 	title_;		
    	string 	author_;		
    };
    
    struct BookCartoon {
    	char 	title[40];		
    	char 	author[40];		
    };
    
    typedef struct {
    	char 	title[40];		
    	char 	author[40];				
    } BookCartoon;
    
    enum ButtonState {
    	SHORT_PRESS,	/* 短按 */
    	LONG_PRESS,		/* 长按 */
    };
    
    typedef enum  {
    	SHORT_PRESS,	/* 短按 */
    	LONG_PRESS,		/* 长按 */
    } ButtonState;
    

    类型 变量 采用驼峰命名:

    序号 类别 举例
    1 结构体变量 bookCartoon
    2 对象名 bookCartoon
    3 枚举变量 buttonState

    1.5 函数 命名规则

    一般来说,函数名的每个单词首字母大写,没有下划线。
    对于首字母缩写的单词,更倾向于将它们视作一个单词进行首字母大写。

    序号 方式 描述
    1 驼峰 命名法 myFunctio()deleteUrl()
    2 下划线 命名法 my_function()
    3 帕斯卡(Pascal)命名法 MyFunction()DeleteUrl()

    1.6 枚举 命名规则

    枚举的命名应当和常量一致:kEnumName或是ENUM_NAME

    typedef enum  {
    	BS_SHORT_PRESS,	/* 短按 */
    	BS_LONG_PRESS,	/* 长按 */
    } ButtonState;
    

    1.7 宏 的命名规则

    命名全部大写,使用下划线 _连接。

     #define 	SECONDS_PER_YEAR 	(60 * 60 * 24 * 365)UL
    

    2、函数

    序号 描述
    1 一个函数 仅完成 一件功能
    2 重复代码 应该尽可能提炼成 函数
    3 避免函数的代码块嵌套过深
    4 对函数的错误返回码全面处理
    5 在源文件范围内声明定义的所有函数,除非外部可见,否则应该增加static关键字

    3、质量保证

    序号 原则 描述
    1 正确性 程序要实现设计要求的功能
    2 简洁性 程序易于理解并且易于实现
    3 可靠性 程序在给定时间间隔和环境条件下,按设计要求成功运行程序的概率
    4 可维护性 程序被修改的能力,包括纠错改进新需求功能规格变化的适应能力
    5 代码 可测试性 软件发现故障并隔离定位故障的能力,以及在一定的时间和成本前提下,进行测试设计测试执行的能力
    6 代码 性能高效 尽可能少地占用系统资源,包括内存和执行时间
    7 可移植性 为了在原来设计的特定环境之外运行,对系统进行修改的能力

    4、程序效率

    在保证软件系统的 正确性、简洁、可维护性、可靠性 及 可测性的前提下,提高代码效率。


    5、注释

    优秀的代码 不写注释也可轻易读懂,注释无法把糟糕的代码变好,需要很多注释来解释的代码往往存在坏味道,需要重构


    命名的 常用缩写

    Primitive(原语) 缩写 翻译
    receive recv 接收
    send send 发送
    argument arg -
    buffer buf -
    command cmd -
    compare cmp -
    config cfg -
    device dev -
    error err -
    hexadecimal hex -
    initialize init -
    maximum max -
    minimum min -
    message msg -
    parameter param -
    previous prev -
    register reg -
    synchronize sync -
    temp tmp -
    展开全文
  • Xorm——定义表结构体

    2020-02-14 10:16:51
    名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射。...SnakeMapper支持struct为驼峰命名,表结构为下划线命名之间的转换;SameMapper支持结构体名称和对应的...

    名称映射规则

    名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射。由core.IMapper接口的实现者来管理,xorm内置了三种IMapper实现:core.SnakeMapper , core.SameMapper和core.GonicMapper。SnakeMapper支持struct为驼峰式命名,表结构为下划线命名之间的转换;SameMapper支持结构体名称和对应的表名称以及结构体field名称与对应的表字段名称相同的命名。

    当前SnakeMapper为默认值,如果需要改变时,在engine创建完成后使用

    engine.SetMapper(core.SameMapper{})
    

    使用Table和Tag改变名称映射

    • 如果结构体拥有TableName() string的成员方法,那么此方法的返回值即是该结构体对应的数据库表名。
    • 通过engine.Table()方法可以改变struct对应的数据库表的名称,通过sturctfield对应的Tag中使用xorm:"'column_name'"可以使该field对应的Column名称为指定名称。这里使用两个单引号将Column名称括起来是为了防止名称冲突,因为我们在Tag中还可以对这个Column进行更多的定义。如果名称不冲突的情况,单引号也可以不使用。

    到此名称映射的所有方法都给出了,一共三种方式,这三种是有优先级顺序的。表名的优先级顺序如下:

    • engine.Table()指定的临时表名优先级最高
    • TableName() string 其次
    • Mapper 自动映射的表名优先级最后

    字段名的优先级顺序如下:

    • 结构体tag指定的字段名优先级较高
    • Mapper 自动映射的表名优先级较低

    Column属性定义

    我们在field对应的Tag中对Column的一些属性进行定义,定义的方法基本和我们写SQL定义表结构类似,比如:

    type User struct {
        Id   int64
        Name string  `xorm:"varchar(25) notnull unique 'usr_name'"`
    }
    

    具体的Tag规则如下,另Tag中的关键字均不区分大小写,但字段名根据不同的数据库是区分大小写:

    tag 说明
    name 当前field对应的字段的名称,可选,如不写,则自动根据field名字和转换规则命名,如与其它关键字冲突,请使用单引号括起来。
    pk 是否是Primary Key,如果在一个struct中有多个字段都使用了此标记,则这多个字段构成了复合主键,单主键当前支持int32,int,int64,uint32,uint,uint64,string这7种Go的数据类型,复合主键支持这7种Go的数据类型的组合。
    autoincr 是否是自增
    [not ]null 或 notnull 是否可以为空
    unique或unique(uniquename) 是否是唯一,如不加括号则该字段不允许重复;如加上括号,则括号中为联合唯一索引的名字,此时如果有另外一个或多个字段和本unique的uniquename相同,则这些uniquename相同的字段组成联合唯一索引
    index或index(indexname) 是否是索引,如不加括号则该字段自身为索引,如加上括号,则括号中为联合索引的名字,此时如果有另外一个或多个字段和本index的indexname相同,则这些indexname相同的字段组成联合索引
    created 这个Field将在Insert时自动赋值为当前时间
    updated 这个Field将在Insert或Update时自动赋值为当前时间
    deleted 这个Field将在Delete时设置为当前时间,并且当前记录不删除
    - 这个Field将不进行字段映射

    另外有如下几条自动映射的规则:

    • 1.如果field名称为Id而且类型为int64并且没有定义tag,则会被xorm视为主键,并且拥有自增属性。如果想用Id以外的名字或非int64类型做为主键名,必须在对应的Tag上加上xorm:"pk"来定义主键,加上xorm:"autoincr"作为自增。这里需要注意的是,有些数据库并不允许非主键的自增属性。
    • 2.string类型默认映射为varchar(255),如果需要不同的定义,可以在tag中自定义,如:varchar(1024)

    https://www.kancloud.cn/kancloud/xorm-manual-zh-cn/56004

    展开全文
  • c语言基础-结构体

    2015-01-21 20:57:21
    结构体也是一种数据类型 (这种数据类型里面可以定义不同的数据类型的数据,是一种用户自定义的数据类型) ...//注意 结构体命名驼峰法 每一个成员变量后面要加上; 在最后的{}后面要加上; 结构体变量的

    结构体也是一种数据类型 (这种数据类型里面可以定义不同的数据类型的数据,是一种用户自定义的数据类型)

    当然结构体里面可以嵌套数组和结构体

    结构体的定义

    struct 结构体名

    {

    成员变量的数据类型1 成员变量名1;

    成员变量的数据类型2 成员变量名2;

    .......

    };

    //注意 结构体的命名用驼峰法 每一个成员变量后面要加上; 在最后的{}后面要加上;

    结构体变量的定义

    struct 结构体名 结构体变量名 = {值1, 值2, 值3, 值4};

    结构体的使用:使用点语法来访问成员变量  结构体变量名 . 成员变量名;

    结构体可以直接赋值 数组不能直接赋值

    类型重命名

    typedef 原类型名 新类型名;

    注意:新类型名使用的命名规范为大驼峰法

    typedef struct student Student;

    struct abc {
            char a;
            char d;
            short b;
            int c;
            
        };
        
        //结构体的内存是最大成员变量数据类型所占的字节数的倍数  
        //结构体成员变量的顺序, 会影响到结构体所占的字节数
        //合理的排布成员变量的顺序, 能够减少内存碎片, 降低结构体所占的字节数
        //把short b放到第二个位置的话, 所占字节数则是12, 以前两个所占字节平分单元





    展开全文
  • 上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息。本节课内容我们继续学习相关的知识和相关操作。...SnakeMapper:支持struct为驼峰命名,表结构中为下划线命名之间的转换。该种规则为xorm
  • 枚举名遵循大驼峰命名法 枚举一般情况下是和switch case结合使用的 注意: 1、虽然枚举中的元素的值可以相同,但是强烈不推荐这样使用 2、枚举元素默认的值类型是int型,可以修改为其他的整型 ...
  • 上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息。本节课内容我们继续学习相关的知识和相关操作。...SnakeMapper:支持struct为驼峰命名,表结构中为下划线命名之间的转换。该种规则为xorm
  • Swift命名规范

    2017-09-21 05:49:50
    在Swift中自定义名字的时候,通常是采用驼峰命名法,也就是混合大小写字母来命名。驼峰命名法又分为小驼峰和大驼峰。小驼峰第一个单词要小写,后面的单词首字母大写,比如说myIntArray;大驼峰所有单词首字母都大写...
  • 结构体内需要序列化的字段首字母大写(遵循驼峰命名),不需要序列化的字段小写无所谓了Username string `json:"username"` 将会使用username做json key值2.如果需要序列化后的json key格式小写,需要加上json标签`...
  • 一般函数,类名,结构体名称,枚举名称采用大驼峰(帕斯卡尔)命名法。 取值、设置函数,一般变量,采用下划线法。...常量采用k+大驼峰命名法。 类数据成员采用下划线命名法,不过结尾要加上下划线。 ...
  • golang命名规范

    万次阅读 2018-08-23 09:35:55
    golang的变量函数命名需要使用驼峰命名法,且不能出现下划线, 文件名使用下划线 golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包...
  • 目录 命名 文件命名 package 变量 常量 接口 结构体 方法 注释 README 命名 文件命名 文件命名一律采用小写,不用驼峰式,尽量...
  • 关于命名规则

    2020-09-07 17:07:53
    关于命名规则 宏定义全部用大写字母 变量用驼峰法//小驼峰法,首字母小写 其它用pascal//大驼峰法,首字母大写//包括结构体变量名
  • 1、golang的命名需要使用驼峰命名法,且不能出现下划线 2、golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写...
  • 代码命名风格参考

    2021-03-19 00:43:26
    驼峰,并以T开头,例如TMsg,结构体里面统一采用基本数据类型 公共成员函数: 大驼峰,例如Open,Close 内部成员函数: 小驼峰,例如open,openFile 变量: 匈牙利命名法,如果是成员变量则在前面添加m_,如果是...
  • 1、golang的命名推荐使用驼峰命名法,必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。 2、golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名...
  • golang 命名规范和开发规范

    千次阅读 2019-07-30 14:51:15
    文件命名一律采用小写,不用驼峰式,尽量见名思义,看见文件名就可以知道这个文件下的大概内容。 其中测试文件以_test.go结尾,除测试文件外,命名不出现_。 例子: stringutil.go, stringutil_test.go ...
  • 常用变量命名规则建议 官网命名建议链接 1. 常量 常量都用大写字母来表示, 用下划线 “_” 加强...以结构体为倒,定义结构体时,结构体的名称要使用Prefix_Name的形式,Name以驼峰列式表现 2. 项目内容的引用...
  • C++-命名规范

    2020-12-16 16:29:05
    C++命名规范 转自:https://gist.github.com/Menglinucas/aad30ebd60b11e7da0d56b35b2064d7e 基本规则 小写之间用下划线连接。全小写格式 大写之间用下划线连接。全大写格式 大、小写混用,不用下划线连接。首字母...
  • 函数:帕斯卡,所有单词首字母大写,eg: ResponseToServer() 变量: 正常的局部变量:驼峰,第... 结构体:帕斯卡 静态变量全局变量宏定义:大写加下划线 保护/私有成员函数:_帕斯卡,eg: _ResponseToServer() ...
  • 1.书写风格:驼峰式 int netWork 类似的帕斯卡命名法 总共有三种 http://baike.baidu.com/view/8042085.htm?fr=aladdin#3 2.前缀: 全局带g 结构体、类内成员带m 指针类型带p 带数据类型前缀的为匈牙利式 3....
  • 每一门语言都有其相应的编码规范, Solidity 也一样, 下面官方推荐的规范及我的总结,供大家参考,希望...合约、库、事件及结构体命名应该使用单词首字母大写的方式,这个方式也称为:帕斯卡命名法或大驼峰命名法...
  • 注:对类、结构体进行命名时,名字需要第一个单词的首字母大写,因为类、结构体相当于定义了新的swift类型,遵循驼峰命名法;当对方法、属性命名时,第一个单词首字母小写,与swift类型命名区分开,命名规则同样...
  • Matlab代码书写规范

    2021-01-11 22:16:10
    变量命名多采用小驼峰命名方式,如下 var serverForYou 循环变量多采用i,j,ki,j,ki,j,k等前缀形式命名,应避少用非前缀的命名方式,避免与matlab虚数单位重复 for i_population=1:K 常量、全局变量 常量或者全局...
  • 编程风格与高效编程

    2019-09-26 11:28:21
    变量小写字母为主体,除第一个单词外的后续单词首字母大写作为分隔(驼峰命名法); 结构体、类全部单词的首字母大写,其余小写 函数名全部小写,单词间以下划线分隔 单输出变量可以以输出变量实际意义...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

驼峰命名结构体