2

所以我目前正在尝试为 PCI 设备编写驱动程序。我一直在查看 WDK 文档附带的一些示例,并在其源代码中发现了一些我不熟悉的内容。

这就是微软如何进行他们的函数调用(至少我认为是这样的)

VOID
PLxEvtIoWrite(
    IN WDFQUEUE         Queue,
    IN WDFREQUEST       Request,
    IN size_t            Length
)

他们有这样格式化函数调用的原因吗?将返回类型放在自己的行上让我困惑了很长时间。

4

2 回答 2

4

这只是试图使代码更具可读性/自我记录。换行符没有语法意义,它们只是单独分解参数。

它对于那些具有更多参数和更长类型注释的函数更有用。

举个例子:IoCreateFileEx

于 2012-08-09T18:44:39.190 回答
0

如果你的函数有很多参数(这是不好的做法,但微软倾向于这样做),那么编写这样的原型而不是类似的东西更易于人类阅读和感知

struct MyRetValType **MagicFunctionName(uint32_t arg1, struct W32_MEM_DESCRIPTOR mem, const union foo **restrict *parm2, va_list argptr, unsigned long long int (*success_callback)(int code, void *context), void *(*error_callback)(int error, void *context));
于 2012-08-09T18:47:57.340 回答