Win32/MFC与C++; 我正在使用Visual Studio 2010。使用Win32/MFC框架和C++编程语言进行应用。
我的问题是变量、函数名、类名等需要使用哪种命名约定。我听微软建议使用“匈牙利符号”命名约定 您能告诉我使用哪种标准吗?您可能有一个很好的理由,希望您的代码对其他学习过MFC的程序员来说很熟悉。如果是这样的话,那么你可以模仿的公约,并做他们所做的 但是MFC是一个起源很早的遗留库,时代已经改变了。微软的风格指南现在明确规定,使用匈牙利符号时不: 撇开这一点不谈,与其盲目地遵循任何特定的文件,不如评估每一项公约。例如,当MFC示例生成类并具有成员变量时,它们的名称以Win32/MFC与C++; 我正在使用Visual Studio 2010。使用Win32/MFC框架和C++编程语言进行应用。,c++,visual-studio-2010,winapi,mfc,C++,Visual Studio 2010,Winapi,Mfc,我的问题是变量、函数名、类名等需要使用哪种命名约定。我听微软建议使用“匈牙利符号”命名约定 您能告诉我使用哪种标准吗?您可能有一个很好的理由,希望您的代码对其他学习过MFC的程序员来说很熟悉。如果是这样的话,那么你可以模仿的公约,并做他们所做的 但是MFC是一个起源很早的遗留库,时代已经改变了。微软的风格指南现在明确规定,使用匈牙利符号时不: 撇开这一点不谈,与其盲目地遵循任何特定的文件,不如评估每一项公约。例如,当MFC示例生成类并具有成员变量时,它们的名称以m开头。StackOverflo
m
开头。StackOverflow对这一特定想法有疑问,您可以阅读以下备选方案:
我更倾向于Qt的API风格指导方针,他们的大多数约定对我来说都适用:
<> PQ,Qt是一个很好的C++产品,它不断地发展和成熟。将MFC从水中吹出(完全)并穿过平台
如果你想被锁定在微软的世界里,那就选择.NET和C。这将是一个进步,您将不会被MFC软件所困扰。您可能有一个真正好的理由希望您的代码对其他学习过MFC的程序员来说是熟悉的。如果是这样的话,那么你可以模仿的公约,并做他们所做的
但是MFC是一个起源很早的遗留库,时代已经改变了。微软的风格指南现在明确规定,使用匈牙利符号时不:
撇开这一点不谈,与其盲目地遵循任何特定的文件,不如评估每一项公约。例如,当MFC示例生成类并具有成员变量时,它们的名称以m
开头。StackOverflow对这一特定想法有疑问,您可以阅读以下备选方案:
我更倾向于Qt的API风格指导方针,他们的大多数约定对我来说都适用:
<> PQ,Qt是一个很好的C++产品,它不断地发展和成熟。将MFC从水中吹出(完全)并穿过平台
如果你想被锁定在微软的世界里,那就选择.NET和C。这将是一个进步,您将不会被MFC软件所束缚。哦,孩子。这几乎就像问人们你应该信仰什么宗教。至少你没有问你应该用什么文本编辑器 我的2c:做适合你的事。也要考虑你是否只是为自己编码,或者你是否期望别人阅读或处理你编写的代码,以及你是从零开始项目,还是在现有代码上建立。 命名约定其实并不重要,只要:
- 选择有意义的名称并描述变量/函数/其他的用途。(这里的关键问题是目的;让编译器处理类型。)
- 在应用约定的任何其他方面(缩进、大小写、前缀、下划线的使用等)时保持一致
-
对于指针,LI> P,因为在C++中,与C语言不同,了解何时处理引用与对象,以及处理多少间接方向是有用的。
- 成员变量(有时在C中依赖于现有代码;参见HostileFork的注释,下面是作为C++中的前缀)<
- cch表示字符计数,cb表示字节计数。在Win32中,不要把这些混淆起来是非常重要的;将字符计数传递给memcpy或将字节计数传递给GetWindowText,您将遇到问题。这种前缀的使用有助于保持代码清晰且明显正确(或不正确,视情况而定-“啊,当然,我正在将cch传递给memcpy,这就是问题所在!”)
对我来说,前两个有助于提高代码的可读性;这里的第三个例子既有助于可读性,也有助于确保正确性——如果愿意的话,有点像助记符。哦,孩子。这几乎就像问人们你应该信仰什么宗教。至少你没有问你应该用什么文本编辑器 我的2c:做适合你的事。也要考虑你是否只是为自己编码,或者你是否期望别人阅读或处理你编写的代码,以及你是从零开始项目,还是在现有代码上建立。 命名约定其实并不重要,只要:
- 选择有意义的名称并描述变量/函数/其他的用途。(这里的关键问题是目的;让编译器处理类型。)
- 在应用约定的任何其他方面(缩进、大小写、前缀、下划线的使用等)时保持一致