[an error occurred while processing this directive]
можно сделать так
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено koyodza 20 сентября 2006 г. 18:08
В ответ на: вопрос по организации данных в С отправлено ы 20 сентября 2006 г. 17:49

void FUNC (int type_id, void *type);
{
GSTRUCT_A* pA = (GSTRUCT_A*)type;
GSTRUCT_B* pA = (GSTRUCT_B*)type;
GSTRUCT_C* pA = (GSTRUCT_C*)type;
type1* p1;
type2* p2;
type3* p3;

switch(type_id)
{
case STRUCT_A_ID:
p1 = pA->t1;
p2 = pA->t2;
p3 = pA->t3;
break;
case STRUCT_B_ID:
p1 = pB->t1;
.....
}

..........
пользуемся указателями p1 p2 p3;
..........
}

а при вызове приводить адрес к (void*) не надо
FUNC(STRUCT_A_ID, &GSTRUCT_A);
FUNC(STRUCT_B_ID, &GSTRUCT_B);
FUNC(STRUCT_С_ID, &GSTRUCT_С);

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание