我经常使用WinApi处理私有项目,正如您所知,它有数千个命名和类型定义的结构,如MEMORY_BASIC_INFORMATION。
我会在我的问题中坚持这个,当你想要命名这种类型的变量时,仍然是首选的,或者更好。这种情况是否有某种风格指南?
例如,如果我需要VirtualQueryEx函数的变量。
一些想法:
MEMORY_BASIC_INFORMATION memoryBasicInformation;
MEMORY_BASIC_INFORMATION memory_basic_information;
只需使用非大写的结构名称,有或没有下划线。
MEMORY_BASIC_INFORMATION basicInformation;
MEMORY_BASIC_INFORMATION information;
简短形式?
MEMORY_BASIC_INFORMATION mbi;
我经常看到这种风格,使用结构名称的缩写。
MEMORY_BASIC_INFORMATION buffer;
VirtualQueryEx定义了第三个参数lpBuffer(你将指针传递给结构体),所以使用这个名字也可能是一个想法。
干杯
答案 0 :(得分:2)
通常,不鼓励根据类型命名变量。相反,请尝试提供有关特定上下文和使用目的的其他信息。
使用MEMORY_BASIC_INFORMATION示例,考虑结构的上下文。您是否使用这些信息迭代了许多此类信息结构?那么也许
MEMORY_BASIC_INFORMATION currentFrame;
或者,如果您正在对某些状态的内存信息进行测试,那么它可能是候选人。
MEMORY_BASIC_INFORMATION candidate;
现在您可以编写类似“测试候选人结构......”的文档。
您可能会发现仍希望使用类型前缀位置包含类型信息。如果是这种情况,您可以将其称为mbiCurrentFrame
或mbiCandidate
。
如果目的或上下文是真正抽象的,例如API函数本身的情况,我会选择简单直接的东西,例如info
或buffer
,除非在这种情况下这些名字可能会在某种程度上被错误解释。
答案 1 :(得分:0)
我认为这取决于许多问题,你只需要在争取可读性时找到最佳平衡。
话虽如此,如果我能逃脱它,我可能会使用......
MEMORY_BASIC_INFORMATION info;
如果有其他类似的类型或变量名称,那么我会添加某种描述性修饰符,例如......
MEMORY_BASIC_INFORMATION memBasicInfo;
或者,如果窗户房地产有限(我工作的一些项目坚持最多80个字符行),我可以去...
MEMORY_BASIC_INFORMATION mbi;
但为了使其尽可能可读,我尝试保持一致 - 我认为这是最重要的事情之一。
到处都是,但我希望它有所帮助。
答案 2 :(得分:0)
尝试并保留typedef的大小写和首字母缩写词,例如
MEMORY_BASIC_INFORMATION MBI_temp
我处理了许多代码,并且必须在Linux和Windows上保持可移植性,这对我们来说也是一个问题。
你也可以在驼峰的情况下做到这一点:
MEMORY_BASIC_INFORMATION MBITemp
..但这似乎不是自我解释。
关键是,任何熟悉这些结构的人都应该将它们识别为相当快的东西。请确保不要在另一个命名空间上进行操作。
关键是,在您工作的每棵树中保持一致。在两种情况下,它实际上只是一个值得注意的问题:
如果你有很长的功能,你必须向上滚动五个页面才能看到变量是什么,处理的问题比变量命名要大:)
令人讨厌的是,这可能会引入一些奇怪的现象,因为语法高亮将其选为常量,但对于底层的typedef也是如此。