你可以轻松回答问题:
CString变量名的接受(假设有一个......)前缀是什么?为了澄清,我已经看到了以下其他数据类型:
int iIndex; //integer
int* pIndex; //pointer
bool fFlag; //bool flag
还有无数其他人。如果这真的是一个非问题或“无论你想要什么”的答案,请随时告诉我。
答案 0 :(得分:4)
没有。永远不要为变量添加类型前缀。有关正确使用前缀的信息,请参阅Making Wrong Code Look Wrong。
答案 1 :(得分:3)
这些前缀是滥用匈牙利表示法的概念。
HN的想法是变量以代码为前缀描述其使用。例如,保存某事物数量的变量将加前缀cnt
;包含索引的变量将以inx
作为前缀。持有标志的变量将以f
为前缀。保存数字的变量(不是计数或索引或其他常见的变量)将以n
作为前缀。
然而,很快人们变得很懒,(主要是由于最后一个例子),前缀开始只是数据类型的指示。这在C中有一些用处,其中变量的声明必须位于函数的顶部,可能与使用它的位置有一定距离。 (特别是当代码是用简单的文本编辑器编写的时候)
但是,最终,我们获得了更多类型安全的语言和更好的IDE,因此虚假的匈牙利表示法因为不必要和蔑视。
答案 2 :(得分:1)
变量名中没有标记符号。事实上,有了更好的开发环境(使用intellisense等),这是非常不必要的。
答案 3 :(得分:1)
我看过“s”用过了。示例:sIndexname。
我使用“m”表示数据成员:mIndex,“p”表示指向数据成员的指针:mpIndex。我只将它们用于类范围变量。就是这样。
到今天的“标准”甚至是推动它。 AFAIK,除了一些微软顽固分子匈牙利表示法已经死了。当我看到它用于局部变量时,我特别感到好笑。乐趣。
出于某种原因,我被“m_”公约击退了。这只是丑陋的,imo。 : - )