Re[2]: как правильно спортировать код?
От: Кодт Россия  
Дата: 16.08.10 09:28
Оценка:
Здравствуйте, 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), либо вдвое больше.
Это опечатка или так задумано?
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.