Здравствуйте, Hard_Club, Вы писали:
H_C>так вот, в linux C static массив данных объединений специализируется так:
H_C>H_C>{{.i = {def, min, max, step}, {.i = {def, min, max, step}}.
H_C>
H_C>Как перенести этот код на Visual C (там нет поддержки этого стандарта)?
Это был C99, а VC умеет только C90.
Очень просто: при агрегатной инициализации объединения — инициализируется первый член.
Поэтому, если не предполагается инициализировать строками, а только def,min,max,step, — достаточно переписать объявление структуры
union
{
struct { int def,min,max,step } i;
char charr[4*sizeof(int)];
}
Кстати!!! В исходном коде было [4*sizeof(double)], то есть, либо заточено под sizeof(double)==sizeof(int), либо вдвое больше.
Это опечатка или так задумано?