在我见过的许多代码示例中,它们以特定方式命名变量。
例如
class obj
{
int mInt;
}
或者
bool gTexture;
问题。
- 为什么他们用这种方式命名它们,而且肯定有更多的方式,我想......
- 你如何命名它们,为什么?
谢谢你
mInt 中的 m 表示 int 是成员变量,而 gTexture 中的 g 表示变量是全局变量。
这来自匈牙利符号。
命名是个人的。为了回答您的第二个问题,我不使用这样的命名约定,而是在类属性后面加上下划线。
公司经常有命名约定。您可能想看看 Google 的命名约定:http: //google-styleguide.googlecode.com/svn/trunk/cppguide.xml#General_Naming_Rules
为什么他们用这种方式命名它们,而且肯定有更多的方式,我想......
一般很难看懂别人的代码;如果时间足够长,也很难理解您自己的代码。
正因为如此,软件团队制定了约定,以确保他们的团队编写的代码与他们自己编写的代码尽可能相似。
这指的是结构化代码、使用的元素(接口、类、命名空间等)、命名函数和变量、要记录的内容和格式等。
如果正确且一致地完成,它可以显着缩短团队内的代码维护时间。
有一些已知的约定,主要来自用于实现大型代码库和使用的库的约定。
Java倾向于使用camelCaseNotation
(以小写字母开头,不使用下划线,每个单词大写)。
MFC 使用匈牙利表示法,其中变量名称以几个字母为前缀,指定数据的范围和类型(m_XXX 表示成员变量,g_XXX 表示全局变量,s_XXX 表示静态变量等)。
特别是匈牙利语的约定可以是正确的(通过使用前缀来表示语义信息)或严重错误(通过使用前缀来表示句法信息)。
(MFC 搞错了。)
ANSI C++(和 std:: 命名空间)倾向于使用small_letters_with_underscores
标识符。
还有其他的,大多数软件团队都建立了一个约定,它是其中一个大约定的变体。
你如何命名它们,为什么?
这些天来,我遵循 ANSI C++ 约定,主要是因为我希望我的代码与库代码无缝集成。我也认为它看起来简单而明显(这是非常主观的)。
我很少使用单字母变量(仅在含义明确时)并且更喜欢完整的单词,而不是缩短的单词。
例子:
索引:int index, line_index, col_index;
类名:class recordset; class task_details;
等
您给出的示例将“m”用于成员变量,将“g”用于全局变量。这是某些人使用的东西。便于在成员函数中查看(当函数比几行大一点时,所以不能只在函数顶部查看参数名称、局部变量等) ),什么是“局部变量”以及什么会影响“函数外部”。
如果您为公司、学校或开源项目工作,很可能有一个编码标准来说明命名约定是什么。如果这是您的个人项目,请决定您认为适合您的项目。关键是它是一致的。如果不是所有成员变量都以“m”开头,并且并非所有全局变量都以“g”开头,那么在某些地方使用它是毫无意义的——只会给人一种错误的安全感。
你不必遵循特定的符号,但如果你这样做很酷。
一切都与代码的清晰度有关,没有任何大写字母的变量确实比具有良好合成器的变量更难理解。(在第一个视图中,当您快速查看部分代码时)
对于清晰的代码,我可以推荐谷歌的 C++ 代码规范:http: //google-styleguide.googlecode.com/svn/trunk/cppguide.xml
不是一个真正的问题。每个人都可以随心所欲地命名它们。不过,您可以阅读这些指南:http: //msdn.microsoft.com/en-us/library/vstudio/ms229045 (v=vs.100).aspx