为什么Microsoft会在多行上编写函数调用?

时间:2012-08-09 18:43:03

标签: c driver

所以我现在正在尝试为PCI设备编写驱动程序。我一直在查看WDK文档附带的一些示例,我注意到他们的源代码中我不熟悉的东西。

这就是微软的功能调用方式(至少我认为这就是它)

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

他们有没有理由像这样格式化他们的函数调用?将返回类型放在自己的路线上会让我困惑很长一段时间。

2 个答案:

答案 0 :(得分:4)

这只是尝试使代码更具可读性/自我记录。新行没有句法意义,他们只是单独分解论点。

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

例如:IoCreateFileEx

答案 1 :(得分: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));