Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Описание структур


Автор: ubique 26.11.2010, 14:02
Достаточно часто вижу описание структур, примерно такого вида:

Код

static struct protosw in_carp_protosw = {
     .pr_type =      SOCK_RAW,
     .pr_domain =        &inetdomain,
     .pr_protocol =      IPPROTO_CARP,
     .pr_flags =     PR_ATOMIC|PR_ADDR,
     .pr_input =     carp_input,
     .pr_output =        (pr_output_t *)rip_output,
     .pr_ctloutput =     rip_ctloutput,
     .pr_usrreqs =       &rip_usrreqs
};


Не могу понять зачем используются точки в описании.

Автор: bsa 26.11.2010, 14:06
ubique, это не описание структуры. Это инициализация переменной. а точки - это инициализация конкретных полей. Подобный синтаксис введен в стандарт C99.
Пример:
Код
struct MyStruct /* это описание структуры */
{
   int a;
   int b;
   int c;
};

struct MyStruct x = /* а это уже определение переменной и инициализация */
{
  .a = 1,
  .b = 2,
  .c = 3
};

Автор: ubique 26.11.2010, 14:17
Спасибо.

Автор: bsa 26.11.2010, 17:15

M
bsa
ubique, если ответ на вопрос получен, то пометь тему решенной

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)