Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Win32/MFC与C++; 我正在使用Visual Studio 2010。使用Win32/MFC框架和C++编程语言进行应用。_C++_Visual Studio 2010_Winapi_Mfc - Fatal编程技术网

Win32/MFC与C++; 我正在使用Visual Studio 2010。使用Win32/MFC框架和C++编程语言进行应用。

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

我的问题是变量、函数名、类名等需要使用哪种命名约定。我听微软建议使用“匈牙利符号”命名约定

您能告诉我使用哪种标准吗?

您可能有一个很好的理由,希望您的代码对其他学习过MFC的程序员来说很熟悉。如果是这样的话,那么你可以模仿的公约,并做他们所做的

但是MFC是一个起源很早的遗留库,时代已经改变了。微软的风格指南现在明确规定,使用匈牙利符号时

撇开这一点不谈,与其盲目地遵循任何特定的文件,不如评估每一项公约。例如,当MFC示例生成类并具有成员变量时,它们的名称以
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:做适合你的事。也要考虑你是否只是为自己编码,或者你是否期望别人阅读或处理你编写的代码,以及你是从零开始项目,还是在现有代码上建立。 命名约定其实并不重要,只要:

  • 选择有意义的名称并描述变量/函数/其他的用途。(这里的关键问题是目的;让编译器处理类型。)

  • 在应用约定的任何其他方面(缩进、大小写、前缀、下划线的使用等)时保持一致

一般来说,如果代码编写得很好,那么约定的细节就无关紧要了

关于匈牙利语和前缀:Win32和C++仍然使用它们,而.NET和C语言没有。 我强烈建议您阅读这篇文章,详细介绍前缀约定在正确的情况下如何以及为什么会非常有用,以及它只是一件毫无意义的琐事

现在,除了少数几个(请注意,这些只是我个人的喜好,多年来我发现它们很有用),我对大多数匈牙利语前缀都不感兴趣:

    对于指针,LI> P,因为在C++中,与C语言不同,了解何时处理引用与对象,以及处理多少间接方向是有用的。
  • 成员变量(有时在C中依赖于现有代码;参见HostileFork的注释,下面是作为C++中的前缀)<
  • cch表示字符计数,cb表示字节计数。在Win32中,不要把这些混淆起来是非常重要的;将字符计数传递给memcpy或将字节计数传递给GetWindowText,您将遇到问题。这种前缀的使用有助于保持代码清晰且明显正确(或不正确,视情况而定-“啊,当然,我正在将cch传递给memcpy,这就是问题所在!”)

对我来说,前两个有助于提高代码的可读性;这里的第三个例子既有助于可读性,也有助于确保正确性——如果愿意的话,有点像助记符。

哦,孩子。这几乎就像问人们你应该信仰什么宗教。至少你没有问你应该用什么文本编辑器

我的2c:做适合你的事。也要考虑你是否只是为自己编码,或者你是否期望别人阅读或处理你编写的代码,以及你是从零开始项目,还是在现有代码上建立。 命名约定其实并不重要,只要:

  • 选择有意义的名称并描述变量/函数/其他的用途。(这里的关键问题是目的;让编译器处理类型。)

  • 在应用约定的任何其他方面(缩进、大小写、前缀、下划线的使用等)时保持一致

一般来说,如果代码编写得很好,那么约定的细节就无关紧要了

至于匈牙利语和公共关系