命名变量
C++ Naming variables
在我看到的许多代码示例中,它们以特定的方式命名变量。
。
class obj
{
int mInt;
}
或
bool gTexture;
问题。
- 为什么他们用这种方式命名它们,我认为肯定有更多的方法…
- 你如何命名它们,为什么?
谢谢
mInt中的m表示int是成员变量,而gTexture中的g表示该变量为全局变量。
这来自匈牙利符号。
http://en.wikipedia.org/wiki/Hungarian_notation个人命名。为了回答你的第二个问题,我没有使用这样的命名约定,我在类属性后面加上了一个下划线。
公司通常有命名约定。您可能需要查看一下Google的命名约定:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#General_Naming_Rules
您给出的示例使用'm'表示成员变量,'g'表示全局变量。这是一些人使用的东西。这使得在成员函数中很容易看到(当函数比几行大一点时,所以你不能只在函数的顶部查看参数,局部变量等的名称),什么是"局部变量"以及什么影响"函数外部"。
如果你在一家公司、一所学校或一个开源项目中工作,很可能会有一个编码标准告诉你命名约定是什么。如果这是你的个人项目,那就选择一些你认为适合你的项目。重点是它是一致的。如果不是所有成员变量都以"m"开头,也不是所有全局变量都以"g"开头,那么在某些地方使用它是毫无意义的——只会给人一种错误的安全感。
你不必遵循一个特定的符号,但如果你这样做是很酷的。
一切都是关于代码的清晰度,一个没有大写的变量确实比一个有良好语法的变量更难以理解。(在第一个视图中,当您快速查看代码的一部分时)
为了清晰的代码,我可以推荐google的c++代码规范:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
为什么他们用这种方式命名,我认为肯定有更多的方法…
一般来说,很难理解别人的代码;如果过了足够的时间,你就很难理解自己的代码了。
因此,软件团队建立约定,以确保他们的团队编写的代码与他们自己编写的代码尽可能相似。
这指的是结构化代码、使用的元素(接口、类、命名空间等)、命名函数和变量、记录什么以及用什么格式等等。
如果做得正确和一致,它对缩短团队中的代码维护时间有显著的影响。
有一些已知的约定,主要来自实现大型代码库和使用库时使用的约定。
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;
等
- http://en.wikipedia.org/wiki/Hungarian_notation
不是一个真正的问题。每个人都想给他们起什么名字。您可以阅读这些指南:http://msdn.microsoft.com/en-us/library/vstudio/ms229045(v=vs.100).aspx
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 尝试通过多个向量访问变量时,向量下标超出范围
- 试图让变量检查数组中的某些内容
- Cpp-Tuple使用带有变量的get
- 将包含C样式数组的对象初始化为成员变量(C++)
- 当vector是tje全局变量时,c++中vector的内存管理
- 通过多个头文件使用常量变量
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 执行函数时导致崩溃的变量
- 变量没有改变?通过向量的函数调用