Инициализировать объединение в структуре с определенным элементом в c ?

#c #initialization #union

#c #инициализация #объединения

Вопрос:

Я знаю, что здесь есть много статей на эту тему, но ни одна из них не сработала для меня.

Проблема возникает из-за преобразования исходного кода c в исходный код c .

У меня есть структура.

 typedef struct OptionDef {
    const char *name;
    int flags;
    union {
        void *dst_ptr;
        size_t off;
    } u;
} OptionDef;
  

И чего я хочу, так это

 int main() {
    const OptionDef optoins[] = {
       { "f", HAS_ARG/*SOME DEFINED VALUE*/, { .off = 2 } }
       { "c", OPT_STRING, { .off = 3} }
    }
    return 0;
}
  

Но в c возникает ошибка «ожидаемое выражение».
Как я могу инициализировать «выключенный» элемент объединения?
Заранее спасибо.

Комментарии:

1. Извините, не Options, это OptionDef.

2. Не перефразируйте сообщения об ошибках. Скопируйте их в точности.

3. Я процитировал сообщение об ошибке.

4. Вот что говорит мой компилятор: coliru.stacked-crooked.com/a/9cedebcb5396c8b2

5. Я проверил это, но не помогло. можете ли вы объяснить это?