Вложенная инициализация переменной структуры

SVN имеет 3 основных преимущества перед CVS

  • , это быстрее
  • управление версиями поддержек двоичных файлов
  • и добавляет транзакционную фиксацию (все или ничего)
8
задан Stick it to THE MAN 19 November 2009 в 08:47
поделиться

2 ответа

Чтобы инициализировать все до 0 (правильного типа)

StructOuter myvar = {0};

Инициализировать элементы определенным значением

StructOuter myvar = {{0, NULL}, {0, NULL}, {0, NULL},
                     {0, NULL}, {0, NULL}, 42.0, "foo"};
/* that's {a, b, c, d, e, f, s} */
/* where each of a, b, c, d, e is {size, elems} */

Edit

Если у вас есть компилятор C99, вы также можете использовать «назначенные инициализаторы», например:

StructOuter myvar = {.c = {1000, NULL}, .f = 42.0, .s = "foo"};
/* c, f, and s initialized to specific values */
/* a, b, d, and e will be initialized to 0 (of the right kind) */
15
ответ дан 5 December 2019 в 08:52
поделиться
double a[] = { 1.0, 2.0 };
double b[] = { 1.0, 2.0, 3.0 };
StructOuter myvar = { { 2, a }, { 3, b }, { 2, a }, { 3, b }, { 2, a }, 1, "a" };

Кажется, что a и b не могут быть инициализированы на месте в обычном C

2
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: