c - 如何命名结构变量

标签 c winapi coding-style

我经常使用 WinApi 处理私有(private)项目,您可能知道,它有数千个命名和类型定义的结构,例如 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(您将指针传递给该结构),因此使用这个名称也可能是一个想法。

干杯

最佳答案

一般来说,不鼓励根据变量的类型来命名变量。相反,请尝试提供有关特定上下文和使用目的的附加信息。

使用 MEMORY_BASIC_INFORMATION 示例,考虑结构的上下文是什么。您是否正在使用这些信息来迭代许多此类信息结构?那么也许

MEMORY_BASIC_INFORMATION currentFrame;

或者,如果您正在对某些状态的内存信息进行测试,也许它是一个候选者。

MEMORY_BASIC_INFORMATION candidate;

现在您可以编写文档,例如“...的测试候选结构”。

您可能会发现您仍然希望使用类型前缀位置来包含类型信息。如果是这种情况,您可以将其称为 mbiCurrentFramembiCandidate

如果目的或上下文确实是抽象的,例如 API 函数本身,我会选择一些简单直接的东西,例如 infobuffer ,除非这些名称在上下文中可能以某种方式被误解。

关于c - 如何命名结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708081/

相关文章:

c++ - 如何让两个子进程互相等待

C 中的重复项计数

c++ - 如何阻止选定的应用程序访问互联网(C++、Win32)

ruby - 提高大型 attr_accessor 的可读性

c++ - "abuse"循环作为 goto 是常见的做法吗

c++ - 外部库应该被包装吗?

c - 模拟硬件中断

c - 完全用汇编编写操作系统有什么好处?

c++ - 如何在 C++ 中使用 Windows API 隐藏桌面图标?

c++ - 如何在不打开 GUI 的情况下从 Visual Studio 执行 WinZip?