2

そのため、現在、PCIデバイス用のドライバーを作成しようとしています。私はWDKドキュメントに付属しているいくつかの例を調べてきましたが、それらのソースコードではなじみのないものに気づきました。

これは、Microsoftが関数呼び出しを行う方法です(少なくとも、これがそれであると思います)

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

関数呼び出しをこのようにフォーマットする理由はありますか?リターンタイプを独自の行に置くと、かなり長い間混​​乱しました。

4

2 に答える 2

4

これは、コードをより読みやすく/自己文書化するための試みにすぎません。改行には構文上の意味はなく、引数を個別に分割するだけです。

これは、より多くのパラメーターとより長い型注釈を持つ関数にとってより便利です。

例として:IoCreateFileEx

于 2012-08-09T18:44:39.190 に答える
0

引数がたくさんある関数がある場合(これは悪い習慣ですが、Microsoftはとにかくこれを行う傾向があります)、次のようなものではなく、このようなプロトタイプを作成する方が人間が読みやすく、知覚しやすいです。

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 に答える