Цитата(Andrei_S @ Dec 18 2007, 11:34)

Но, допустим, мне необходимо перезаписать всего один элемент структуры - пускай 5 элемент.
Мне нужно узнать его адрес и размерность.
Код
//-------------------------------------------------------------
// Вычисление смещения до поля в структуре
//-------------------------------------------------------------
#define OFFSET(type,field) ((char *)&(((type *)0)->field) - (char *)0)
Как пользоваться - OFFSET(тип_структуры, имя_элемента) выдаст смещение от начала структуры до указанного элемента. Размер элемента можно получить по sizeof(type.field).
Цитата(Andrei_S @ Dec 18 2007, 16:01)

Но а все-таки, а как уйти от названия элементов структуры к порядковому номеру элемента этой структуры?
Хотелось бы вместо названия поля info_1 писать номер этого поля, например 1
Тогда я бы сделал еще одну табличку с дескрипторами полей. Например, массив структур с описателями параметров. В него заносил бы тип поля, смещение от начала, размер, формат вывода, строку с именем, минимальное и максимальное значения и т.д. А индекс этого массива для читабельности описал как enum.