为什么 LogSeverity 在 windows SetupAPI 中 #defined 为 DWORD

why is LogSeverity #defined as DWORD in windows SetupAPI

我在第 4871 行 windows 工具包 10 SetupAPI.h 中看到了这个 #define

#define LogSeverity DWORD

所以我不能做类似

的事情

typedef int LogSeverity

如果我不想重新定义 DWORD,这实际上会使 LogSeverity 成为保留关键字。我在这里遗漏了什么吗?

windows API 有大量这样的标识符,我对这种情况感到惊讶的是它是#define 而不是typedef。虽然它是一个定义,但它确实为您提供了在有问题的包含之后#undefing它的选项。尽管我可能只是接受它是一个已经使用过的标识符并为我创建的任何内容选择另一个名称。

'Why'这种形式的问题一般没有答案,只有解决方法。

#include <setupapi.h>
#undef LogSeverity