在哪里可以找到匈牙利符号的备忘单?

Mau*_*ceL 5 hungarian-notation

我正在使用系统匈牙利符号的旧式COM C ++项目。因为这是对遗留代码的维护,所以约定以原始样式编写代码-我们的较新代码不是用这种方式编码的。因此,我对更改该标准或对我们过去的罪过进行讨论不感兴趣=)

是否有针对系统匈牙利符号的在线备忘单?

到目前为止,我能找到的最好的文章是堆栈溢出之前的讨论帖子,但是它并没有我过去需要的所有东西。有人还有其他链接吗?

(制作此社区Wiki,希望它能成为一个自我填充的列表)

Ree*_*sey 5

如果这是针对旧版 COM 项目,您可能需要遵循Microsoft 的匈牙利表示法规范,该规范记录在 MSDN 上。

请注意,这是Apps Hungarian,即“良好”的匈牙利表示法Systems Hungarian 是“坏”的一种,其名称以编译器类型为前缀,例如ifor int

MSDN 文章中的表格

表 1. 过程名称的一些示例

名称 描述

InitSy 将 sy 作为其参数并对其进行初始化。

OpenFn fn 是参数。该过程将“打开”fn。没有返回值。

FcFromBnRn 返回与给定的 bn,rn 对对应的 fc。(这些名称无法告诉我们 sy、fn、fc 等类型是什么。)

以下是标准类型结构的列表。(X和Y代表任意标签。根据标准标点,实际标签是小写的。)

表 2. 标准型结构

pX 指向 X 的指针。

dX 两个 X 类型实例之间的差异。X + dX 属于 X 类型。

cX 类型 X 的实例计数。

mpXY 由 X 索引的 Y 数组。读作“从 X 到 Y 的映射”。

rgX X 的数组。读作“范围 X”。数组的索引称为:

iX 数组 rgX 的索引。

dnX(罕见)由类型 X 索引的数组。数组的元素称为:

eX(稀有)数组 dnX 的元素。

grpX 存储中依次存储的一组 X。当 X 元素的大小可变且标准数组索引不适用时使用。必须通过直接索引以外的方式引用组的元素。例如,存储分配区域是一组块。

bX 相对于类型 X 的偏移量。这用于具有可变大小字段的数据结构中的字段位移。偏移量可以以字节或字的形式给出,具体取决于测量偏移量的基指针。

cbX X 实例的大小(以字节为单位)。

cwX X 实例的大小(以字为单位)。

以下是标准限定符。(字母 X 代表任何类型标签。实际类型标签为小写。)

表 3. 标准限定符

XFirst X 值的有序集合(区间)中的第一个元素。

XLast 有序 X 值集中的最后一个元素。XLast 是闭区间的上限,因此循环继续条件应该是:X <= XLast。

XLim 有序 X 值集的严格上限。循环延续应该是:X < XLim。

XMax 对于所有其他 X,所有 X 值(Max、Mac 和 Nil 除外)的严格上限:X < XMax。如果 X 值以 X=0 开头,则 XMax 等于不同 X 值的数量。例如,dnx 向量的分配长度通常为 XMax。

XMac 所有 X 值的当前(而不是常量或分配的)上限。如果 X 值以 0 开头,则 XMac 是当前 X 值的数量。要迭代 dnx 数组,例如:
          对于 x=0 步骤 1 到 xMac-1 执行 ... dnx[x] ...
          或者
          对于 ix=0 第 1 步到 ixMac-1 执行 ... rgx[ix] ...

XNil X 类型的可区分 Nil 值。该值可能是也可能不是 0 或 -1。

XT 临时 X。一种限定范围内给定类型的第二个数量的简单方法。

表 4. 一些常见的基本类型

f 标志(布尔值,逻辑值)。如果使用限定符,它应该描述标志的真实状态。例外:常量 fTrue 和 fFalse。

w 具有任意内容的单词。

ch 字符,通常为 ASCII 文本。

b 字节,不一定保存编码字符,更类似于 w。与 b 构造函数的区别在于紧随其后的限定符的大写字母。

sz 指向以零结尾的字符串的第一个字符的指针。

st 指向字符串的指针。第一个字节是字符 cch 的计数。

h pp(在堆中)。