社区
C语言
帖子详情
匈牙利命名方法我不清楚,希望详答
元明
2000-03-13 09:55:00
加精
在C++中,标识符前缀我还有些不懂,不知哪位朋友能够提供一个详细的表格,帮助我解惑,或者提供资料的连接地址,我不慎感激。
...全文
301
16
打赏
收藏
匈牙利命名方法我不清楚,希望详答
在C++中,标识符前缀我还有些不懂,不知哪位朋友能够提供一个详细的表格,帮助我解惑,或者提供资料的连接地址,我不慎感激。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bruceleee
2001-08-31
打赏
举报
回复
Simonyi的博士论文参考文献
Simonyi , Charles . “Meta-Programming: A Software Production Method.” Thesis , Xerox Palo Alto Research Center , 1977 .
bruceleee
2001-08-31
打赏
举报
回复
该约定是由生于匈牙利布达佩斯的Charles Simonyi开发的,它通过在数据和函数名中加入额外的信息以增进程序员对程序的理解。例如:
char ch; /* 所有的字符变量均以ch开始 */
byte b; /* 所有的字节均冠以b */
long l; /* 所有的长字均冠以l */
对于指向某个数据类型的指针,可以先象上面那样建立一个有类型的名字,然后给该名字加上前缀字母P:
char* pch; /* 指向ch的指针以p开始 */
byte* pb; /* 同理 */
long* pl;
void* pv; /* 特意显用的空指针 */
char** ppch; /* 指向字符指针的指针 */
byte** ppb; /* 指向字节指针的指针 */
匈牙利式名字通常不那么好念,但在代码中读到它们时,确实可以从中得到许多的信息。例如,当你眼看到某个函数里有一个名为pch的变量时,不用查看声明就立即知道它是一个指向字符的指针。
为了使匈牙利式名字的描述性更强.或者要区分两个变量名,可以在相应类型派生出的基本名字之后加上一个以大写字母开头的“标签”。例如,strcpy函数有两个字符指针参数:一个是源指针,另一个是目的指针。使用匈牙利式命名约定,其相应的原型是:
char* strcpy(char* pchTo, char* pchFrom); /* 原型 */
在上面的例子中,两个字符指针有一个共同的特点 ── 都指向以0为结尾的C的字符串。因此在本书中,每当用字符指针指向字符串时,我们就用一个更有意义的名子str来表示。因此,上述strcpy的原型则为:
char* strcpy(char* strTo, char* strFrom) /* 原型 */
另一个类型是ANSI标准中的类型size_t。下面给出该类型的一些典型用法:
size_t sizeNew, sizeOld; /* 原型 */
void* malloc(size_t size); /* 原型 */
void* realloc(void* pv, size_t sizeNew); /* 原型 */
函数和数组的命名遵循同样的约定,名字由相应的返回类型名开始,后跟一个描述的标签。例如:
ch = chLastKeyPressed; /* 由变量得一字符 */
ch = chInputBuffer[]; /* 由数组得一字符 */
ch = chReadKeyboard; /* 由函数得一字符 */
如果利用匈牙利式命名方法,mall~和reali~可以写成如下形式:
void* pvNewBlock(size_t size); /* 原型 */
void* pvResizeBlock(void* pv, size_t sizeNew); /* 原型 */
由于匈牙利式命名方法旨在增进程序员对程序的理解,所以大多数匈牙利式名字的长度都要超过ANSI严格规定6个字母的限制。这就不妙,除非所用的系统是几十年前设计的系统,否则这6个字母的限制只当是历史的遗迹。
以上内容基本上没有涉及到匈牙利式命名约定的细节,所介绍的都是读者理解本书中所用变量和函数名称意义的必需内容。如果读者对匈牙利式命名约定的详细内容感兴趣,可以参考本书末尾参考文献部分列出的Simonyi的博士论文。
yechun
2001-06-07
打赏
举报
回复
0
lonelyhost
2001-05-29
打赏
举报
回复
有没有更加详细的解析
kyaohong
2001-05-24
打赏
举报
回复
好像wizardxd兄说的不对吧,关于匈牙利命名法我记得是微软的首席建筑师西蒙尼的硕士(博士?)毕业论文吧,西蒙尼本人就是匈牙利人!!
wizardxd
2000-03-18
打赏
举报
回复
是微软为了纪念一位匈牙利的程序员而以此命名。
具体的表示和xubin_sh兄的差不多。
lpsz 字符长指针
lpcsz 指向字符常量长指针....
见名知意,以此类推。
wizardxd
2000-03-18
打赏
举报
回复
是微软为了纪念一位匈牙利的程序员而以此命名。
具体的表示和xubin_sh兄的差不多。
lpsz 长指针字符
lpcsz 长指针常量指针....
见名知意,以此类推。
Black_Knight
2000-03-17
打赏
举报
回复
就是大写加小写!
gun2
2000-03-17
打赏
举报
回复
其实,这个方法的最大缺点就是使写程序的人过分的将注意力集中在变量的类型上,从而忽视程序的算法和结构。其他缺点:某些情况下,诸如“lpsz”等过于冗长(别忘了还有自己特定的前缀要写呢!);过分针对Windows编程,etc.
csdn2000
2000-03-15
打赏
举报
回复
匈牙利命名方法可去书店或图书馆找本C++、VC、Windows开发编程等方面的书查查就知道。
王释之
2000-03-15
打赏
举报
回复
匈牙利命名方法虽然非常流行,但也得有自己的风格,
这样既利于工作,也可以快速增涨水平!!!
mach
2000-03-14
打赏
举报
回复
visual studio 98里带有msdn,去ms的王站也可以
元明
2000-03-14
打赏
举报
回复
Un1:MSDN在哪里,是不是微软的.
Un1
2000-03-14
打赏
举报
回复
去MSDN中查看一下。
xubin_sh
2000-03-13
打赏
举报
回复
c:char or WCHAR or TCHAR
by:byte
n:short
i:int
x,y:int表示坐标系
cx,cy:int 表示长度,c表示count(记数)
b:BOOL(int)
f:flag(标志)
w:WORD(unsigned short)
l:LONG
dw:DWORD
fn:function(函数)
s:string(串)
sz:以0字节结尾的串
h:句柄
p:指针
fupf88
2000-03-13
打赏
举报
回复
建议变量名称以一个或多个小写字母开头,这些小写字母用以标识其变量类型,类型标识字母的下一个字母一般采用大写.类型定义使用相同的类型标识符作为前缀,但全部使用大写.
匈牙利命名规则基本上可以望文生义,如chTest,xPos等
而VC前缀需要查书了,如Afx,AFX_ID等,因记不清了,不敢乱说:)
YOLOv5+DeepSORT多目标跟踪与计数精讲
实践篇包括Win10和Ubuntu系统上的YOLOv5+DeepSORT的多目标跟踪和计数具体的实践操作步骤演示,特别是对行人、车辆的ReID数据集讲解了训练
方法
; 原理篇中讲解了马氏距离、
匈牙利
算法、卡尔曼滤波器的原理...
代码的两种
命名
方法
:驼峰
命名
、
匈牙利
命名
(优缺点)
代码的两种
命名
方法
:驼峰
命名
、
匈牙利
命名
(优缺点) 一、骆驼
命名
法: 小驼峰法(camel
方法
)变量一般用小驼峰法标识。 第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写...
三种
命名
规则之-----
匈牙利
命名
规则
三种
命名
规则之-----
匈牙利
命名
规则
匈牙利
命名
法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的
命名
规范。
匈牙利
命名
法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它...
匈牙利
命名
法(全)
匈牙利
命名
法(全)
匈牙利
命名
法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的
命名
规范。
匈牙利
命名
法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的...
匈牙利
命名
法、驼峰式
命名
法、帕斯卡
命名
法
匈牙利
命名
法、驼峰式
命名
法、帕斯卡
命名
法
匈牙利
命名
法驼峰式
命名
法小驼峰式
命名
法大驼峰式
命名
法(帕斯卡
命名
法)
匈牙利
命名
法优缺点优点缺点其他
匈牙利
命名
法 基本原则是:变量名=属性+类型+对象描述。 开头字母...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章