C ++命名变量

时间:2013-06-05 09:13:25

标签: c++ variables naming

在我看过的许多代码示例中,他们以特定的方式命名变量。

E.g。

class obj
{
    int mInt;
}

bool gTexture;

问题。

  1. 为什么他们以这种方式命名他们,我认为有更多的方法......
  2. 你如何命名,为什么?
  3. 谢谢

6 个答案:

答案 0 :(得分:1)

mInt中的m表示int是成员变量,而gTexture中的g表示变量是全局变量。

这来自匈牙利表示法。

http://en.wikipedia.org/wiki/Hungarian_notation

答案 1 :(得分:0)

个人命名。要回答你的第二个问题,我不使用这样的命名约定,并在类属性上附加下划线。

公司经常有命名惯例。您可能想要了解Google的命名约定:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#General_Naming_Rules

答案 2 :(得分:0)

您给出的示例使用'm'表示成员变量,使用'g'表示全局变量。这是某些人使用的东西。它使得在成员函数中很容易看到(当函数比几行大一点时,所以你不能只查看函数的顶部来查看参数的名称,局部变量等等) ),什么是“局部变量”,什么影响“功能之外”。

如果您在公司,学校或开源项目中工作,最有可能的是,有一个编码标准可以说明命名惯例是什么。如果这是您的个人项目,那么决定您认为适合自己的事情。重点是它是一致的。如果不是所有成员变量都以'm'开头,并且并非所有全局变量都以'g'开头,那么将它放在某些地方是没有意义的 - 只是给出了一种错误的安全感。

答案 3 :(得分:0)

你不必遵循特定的符号,但如果你这样做很酷。

所有都是关于代码的清晰度,没有任何大写的变量实际上比具有良好的synthax的变量更难理解。 (在第一个视图中,当您快速查看代码的一部分时)

对于清晰的代码,我可以推荐谷歌的c ++代码规范:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

答案 4 :(得分:0)

  

为什么他们以这种方式命名他们,我认为有更多的方法......

一般来说,很难理解其他人的代码;如果时间过去,也很难理解自己的代码。

正因为如此,软件团队设置了约定,以确保团队编写的代码尽可能与他们自己编写的代码相似。

这指的是结构化代码,使用的元素(接口,类,名称空间等),命名函数和变量,要记录的内容以及格式等等。

如果正确且一致地完成,它可以缩短团队内代码维护时间。

有一些已知的约定,主要来自用于实现大型代码库和使用库的约定。

Java倾向于使用camelCaseNotation(以小写字母开头,不使用下划线,大写每个单词)。

MFC使用匈牙利表示法,其中变量名称前缀为指定数据范围和类型的几个字母(成员变量为m_XXX,全局为g_XXX,静态为s_XXX等)。

特别是匈牙利公约可以正确(通过使用语义信息的前缀)或可怕的错误(通过使用语法信息的前缀)。

(MFC严重错误。)

ANSI C ++(和std :: namespace)倾向于使用small_letters_with_underscores作为标识符。

还有其他人和大多数软件团队建立了一个大会的变体。

  

你如何命名,为什么?

这些天我遵循ANSI C ++约定,主要是因为我希望我的代码能够与库代码无缝集成。我也认为它看起来简单明了(这是非常主观的)。

我很少使用一个字母变量(仅当含义明确时)并且更喜欢完整的单词,而不是缩写的单词。

示例:

索引:int index, line_index, col_index;

班级名称:class recordset; class task_details;等。

答案 5 :(得分:-1)

  1. http://en.wikipedia.org/wiki/Hungarian_notation

  2. 不是一个真正的问题。每个人都按照自己的意愿命名。不过,您可以阅读这些指南:http://msdn.microsoft.com/en-us/library/vstudio/ms229045(v=vs.100).aspx