C struct static

时间:2010-09-24 13:25:28

标签: c

我通过C源(pjsip)查看,我发现了这个结构。我不知道如何怀孕。

static struct user_agent
{
    pjsip_module     mod;
    pj_pool_t       *pool;
    pjsip_endpoint  *endpt;
    pj_mutex_t      *mutex;
    pj_hash_table_t *dlg_table;
    pjsip_ua_init_param  param;
    struct dlg_set   free_dlgset_nodes;

} mod_ua = 
{
  {
    NULL, NULL,         /* prev, next.          */
    { "mod-ua", 6 },        /* Name.                */
    -1,             /* Id               */
    PJSIP_MOD_PRIORITY_UA_PROXY_LAYER,  /* Priority     */
    &mod_ua_load,       /* load()               */
    NULL,           /* start()              */
    NULL,           /* stop()               */
    &mod_ua_unload,     /* unload()             */
    &mod_ua_on_rx_request,  /* on_rx_request()          */
    &mod_ua_on_rx_response, /* on_rx_response()         */
    NULL,           /* on_tx_request.           */
    NULL,           /* on_tx_response()         */
    &mod_ua_on_tsx_state,   /* on_tsx_state()           */
  }
};

2 个答案:

答案 0 :(得分:2)

不是一个特别明确的问题,但我认为你遇到的问题是结构是在同一个语句中声明和使用的。怎么样:

struct user_agent {
    ....
}

static struct user_agent mod_ua = ....

那更清楚吗?

ķ

答案 1 :(得分:0)

如果没有结构的定义,很难确定,但我认为正在发生的事情是mod成员(类型为pjsip_module)正在被初始化,而其他成员正在被{ {1}}未明确初始化(这意味着它们将被设置为零,因为这是在初始化某些成员而不是其他成员时发生的情况)。内套括号是线索。看看mod_ua的定义 - 它是否与您拥有的值相匹配?