C struct static - PullRequest
       1

C struct static

0 голосов
/ 24 сентября 2010

Я просматриваю источник 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 ]

2 голосов
/ 24 сентября 2010

Не совсем ясный вопрос, но я думаю, у вас проблемы с тем, что структура объявляется и используется в одном и том же утверждении. Как насчет:

struct user_agent {
    ....
}

static struct user_agent mod_ua = ....

что нибудь понятнее?

K

0 голосов
/ 24 сентября 2010

Трудно быть уверенным без определений структур, но я думаю, что происходит то, что элемент mod (который имеет тип pjsip_module) инициализируется, а другие члены mod_ua не являются явно инициализирован (что означает, что они будут установлены в ноль, потому что это то, что происходит, когда некоторые члены инициализируются, а не другие). Внутренний набор скобок является ключом. Посмотрите на определение pjsip_module - соответствует ли оно вашим значениям?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...