1

次のスニペットはどのように機能しますか? 何が入っているの?Eclipse は、IN は「マクロ展開」を表すと言っています。

 UWORD32 (*get_u32)(IN UWORD8 *buffer_ptr);    /* Gets unsigned 32bit word   */
                                           /* from the buffer */

上記のコードは構造体の一部です。と、このように使われています。

struct my struct s;
UWORD8* buf;

s->get_u32(buf);

それはどのように機能しますか?

4

2 に答える 2

2

私はそれINが次のように#defineどこかにあると思いconstます:

#define IN const    // input parameters are const

get_u32は単なる関数ポインターです。関数は単一のパラメーター ( へのポインターUWORD8) を取り、 を返しますUWORD32

于 2012-10-10T04:13:41.443 に答える
0

IN を「なし」として宣言することもできます

#define IN
#define OUT

この場合、コードが読みやすくなります:)

void func ( IN param_t param1,         /* INPUT PARAM */
            IN param_t param2,         /* INPUT PARAM */
            OUT param_t *param3);      /* OUTPUT PARAM */
于 2012-10-10T07:24:34.833 に答える