首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中命名int或char变量时,"n“或"ch”前缀是通用前缀吗?

在C++中命名int或char变量时,"n“或"ch”前缀是通用前缀吗?
EN

Stack Overflow用户
提问于 2013-08-17 02:06:04
回答 3查看 2.6K关注 0票数 6

我目前正在阅读learncpp.com的C++教程,并且我看到他们的变量命名趋势是用"n“前缀(即int nValue)和"ch”前缀来命名char变量(即char chOperation)。这在行业中是很常见的,我现在应该养成这种习惯吗?

EN

回答 3

Stack Overflow用户

发布于 2013-08-17 02:10:45

是的,它们很常见(尤指)。(在Windows相关项目中)

但是不同的项目可能使用不同的编码样式。因此,如果您正在使用一个现有的项目,那么最好是坚持它已经遵循的风格。

您提到的命名样式称为匈牙利风格,它通常用于与Windows相关的项目中。在匈牙利风格中,变量以骆驼(如CamelCase)的形式格式化,并以其范围和类型作为前缀:

代码语言:javascript
运行
复制
[scope prefix]_[variable type][actual variable name in camel-cased style]

例如:

代码语言:javascript
运行
复制
m_nMemberInteger

是一个整数(根据它的前缀n),另外,它是某个结构/类的成员变量(根据其前缀m_),您可以在上面的链接中找到匈牙利样式中使用的作用域和类型前缀的完整列表。

然而,在基于linux的项目中,您通常会发现人们使用不同的编码样式(例如谷歌c++编码风格),它只使用小写和下划线_来命名变量。

票数 2
EN

Stack Overflow用户

发布于 2013-08-17 02:12:04

这看起来像匈牙利的符号。这类东西有时会被使用,特别是在某些编程领域。就我个人而言,我认为这会使代码看起来很混乱。在C++中,您应该更多地考虑对象的含义,而不是它的底层类型。现代的编辑器很容易让你查找变量的类型,所以它有点过时了。我能理解为什么在编辑没那么有用的时候会用到它。

票数 0
EN

Stack Overflow用户

发布于 2013-08-17 02:24:39

正如其他注释中提到的那样,这被称为“匈牙利符号”,用于使变量的类型变得明显。虽然标记该类型是否值得讨论,但另一个常见的约定(特别是在C++中)是使用前缀来表示变量使用情况的信息。这对于引用和成员变量尤其有用。例如,您可能有一个类似于

代码语言:javascript
运行
复制
void MyClass::myMethod(const int& iInput, int& oOutput, int &ioInputAndOutput)
{
    oOutput = ioInputAndOutput + mMemberData + iInput;
    ioInputAndOutput *= 2; 
}

正如上面所提到的,重要的是一致性,这将防止比任何特定约定更多的bug。在协作项目上,遵循现有的约定通常是值得的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18284409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档