我目前正在阅读learncpp.com的C++教程,并且我看到他们的变量命名趋势是用"n“前缀(即int nValue)和"ch”前缀来命名char变量(即char chOperation)。这在行业中是很常见的,我现在应该养成这种习惯吗?
发布于 2013-08-17 02:10:45
是的,它们很常见(尤指)。(在Windows相关项目中)
但是不同的项目可能使用不同的编码样式。因此,如果您正在使用一个现有的项目,那么最好是坚持它已经遵循的风格。
您提到的命名样式称为匈牙利风格,它通常用于与Windows相关的项目中。在匈牙利风格中,变量以骆驼(如CamelCase)的形式格式化,并以其范围和类型作为前缀:
[scope prefix]_[variable type][actual variable name in camel-cased style]
例如:
m_nMemberInteger
是一个整数(根据它的前缀n
),另外,它是某个结构/类的成员变量(根据其前缀m_
),您可以在上面的链接中找到匈牙利样式中使用的作用域和类型前缀的完整列表。
然而,在基于linux的项目中,您通常会发现人们使用不同的编码样式(例如谷歌c++编码风格),它只使用小写和下划线_
来命名变量。
发布于 2013-08-17 02:12:04
这看起来像匈牙利的符号。这类东西有时会被使用,特别是在某些编程领域。就我个人而言,我认为这会使代码看起来很混乱。在C++中,您应该更多地考虑对象的含义,而不是它的底层类型。现代的编辑器很容易让你查找变量的类型,所以它有点过时了。我能理解为什么在编辑没那么有用的时候会用到它。
发布于 2013-08-17 02:24:39
正如其他注释中提到的那样,这被称为“匈牙利符号”,用于使变量的类型变得明显。虽然标记该类型是否值得讨论,但另一个常见的约定(特别是在C++中)是使用前缀来表示变量使用情况的信息。这对于引用和成员变量尤其有用。例如,您可能有一个类似于
void MyClass::myMethod(const int& iInput, int& oOutput, int &ioInputAndOutput)
{
oOutput = ioInputAndOutput + mMemberData + iInput;
ioInputAndOutput *= 2;
}
正如上面所提到的,重要的是一致性,这将防止比任何特定约定更多的bug。在协作项目上,遵循现有的约定通常是值得的。
https://stackoverflow.com/questions/18284409
复制相似问题