网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 92|回复: 20

四种基本的编程命名规范(匈牙利命名法、驼峰式命名法 ...

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-9-5 11:07:20 | 显示全部楼层 |阅读模式
匈牙利命名法

匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物。那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所以才产生了这样一个命名规范,估计现在已经没啥人用了吧……一个十分系统却又琐碎的命名规范。
该命名规范,要求前缀字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,单词第一个字母大写。
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)还有其他更多的前缀是根据微软自己的 MFC/句柄/控件/结构等东西定义的,就不过多描述了。
驼峰式命名法

驼峰式命名法,又叫小驼峰式命名法(所以自然就存在大驼峰命名法啦……)。
该命名规范,要求第一个单词首字母小写,后面其他单词首字母大写,简单粗暴易学易用。
Ex

int myAge;
char myName[10];
float manHeight;帕斯卡命名法

帕斯卡命名法,又叫大驼峰式命名法。
与小驼峰式命名法的最大区别在于,每个单词的第一个字母都要大写。
Ex

int MyAge;
char MyName[10];
float ManHeight;下划线命名法

下划线命名法并不如大小驼峰式命名法那么备受推崇,但是也是浓墨重彩的一笔。尤其在宏定义和常量中使用比较多,通过下划线来分割全部都是大写的单词。
该命名规范,也是很简单,要求单词与单词之间通过下划线连接即可。
Ex

int my_age;
char my_name[10];
float man_height;补充说明

随着技术的发展,命名规范也在不断的细化,一种命名规范早已无法系统的满足各方需求(匈牙利命名法除外,但是已经基本淘汰了),不同的语言不同 IDE 推崇的规范也有所不同,无法评判哪一种最好,但是可以肯定的是,集后三种命名规范大成者,一定是受众最广的。
例如,谷歌 C++ 编程规范,从项目的命名到文件的命名,再到类和变量以及宏定义的命名都做到了细致入微,充分的结合了下划线命名法与驼峰式命名法(早先推崇的小驼峰,不过今年好像改成大驼峰了),又加入了一些新的元素,十分的系统完善。
当然,命名规范并不代表着编程规范,仅仅是编程规范的一部分而已,除去命名规范,还有很多编程上的细节是必须关注的,例如,等号两边留空格还是等号对齐?空行神马时候神马地方留更加符合代码结构?空格神马时候神马地方留更加美观?花括号是否对齐?
诸如此类,还有很多,无法一下子全部掌握并应用,但是在编程经验增加的过程中,一定也要不断的留意,自己所在的公司部门使用的是神马样的规范,没错,并不提倡大家练就自己的规范,一定要去融入工作环境的需求。
每次去新的工作环境,第一个要看的文档不是别的,一定是编程规范,如果没有这个东西,那么就努力去推一个统一的规范,推不动的话,那可以换工作了,否则日后将会带来无尽的麻烦。
手动滑稽.jgp
回复

使用道具 举报

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-9-5 11:07:49 | 显示全部楼层
我听说微软现在的源代码都在用匈牙利命名法,所以我感觉您这个匈牙利命名法没人用了是不是还应该考究考究,尽量别误人子弟。
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-9-5 11:08:28 | 显示全部楼层
匈牙利这个本事就是微软的搞得,现在有匈牙利很正常,毕竟历史遗留问题。不过你真的去了解一下还有别人在用吗?
回复

使用道具 举报

2

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-9-5 11:09:21 | 显示全部楼层
并且匈牙利命名法早先也是因为 ide 不够强大,所以要在命名中塞入大量类型信息,现如今早就落伍了,只是历史遗留问题导致微软代码中仍然存在大量匈牙利命名法
回复

使用道具 举报

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-9-5 11:09:37 | 显示全部楼层
不是存在,是如今正在开发的项目还在用匈牙利命名发
回复

使用道具 举报

2

主题

4

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-9-5 11:10:06 | 显示全部楼层
所以你是不理解什么叫做历史遗留问题吗?我昨天刚找微软的朋友求证过。
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-9-5 11:10:41 | 显示全部楼层
有的项目已经是匈牙利了,后续遵循匈牙利有什么稀奇的,有没有落伍还是要看看用的人多不多,匈牙利就和 mfc 一样,被市场淘汰的东西。
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-9-5 11:10:59 | 显示全部楼层
明白了
回复

使用道具 举报

1

主题

7

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-9-5 11:11:09 | 显示全部楼层
老哥,你有没有你说的谷歌那个命名规范文档,给老弟开开眼[飙泪笑][飙泪笑]
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-9-5 11:12:09 | 显示全部楼层
网上一搜一堆的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-3-15 23:29 , Processed in 0.097154 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表