У меня возникла проблема, которая, по-видимому, не устранена ни одним из стандартов C после сохранения C89, поскольку упоминание о том, что ограничения инициализации структуры были отменены. Тем не менее, я столкнулся с ошибкой с использованием Open Watcom IDE (для отладки), где компилятор заявляет, что инициализатор должен быть постоянным выражением.
Вот суть того, что происходит.
typedef struct{
short x;
short y;
} POINT;
void foo( short x, short y )
{
POINT here = { x, y }; /* <-- This is generating the error for the compiler */
/* ... */
}
Любые идеи, почему, или какой стандарт запрещает это?