1

以下代码段如何工作?什么是IN?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#defined 某处const

#define IN const    // input parameters are const

get_u32只是一个函数指针 - 该函数接受一个参数(指向 a 的指针UWORD8)并返回 a 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 回答