Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C++ и incomplete type
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Sagittarius
Здравствуйте.

В простом C можно было написать конструкцию типа такой:

Код
typedef struct{
  unsigned char len;// количество данных
  unsigned char data[0];// сами данные
}Pack;


где был массив с нулевым количеством элементов, C++ на это ругается. Возможно ли в плюсах разрешить применение incomplete type?

Спасибо.
Непомнящий Евгений
Код
struct Pack {
  unsigned char len;// количество данных
  unsigned char data[1];// сами данные
};

template<int SZ>
struct RealPack : Pack
{
  RealPack () { len = SZ; }
  unsigned char data[SZ-1];
};

void func(Pack *p)
{
  int s;
  for (int i = 0; i < p->len; ++i)
    s += p->data[i];
}

void topFunc()
{
  RealPack<100> p;
  func(&p);  
};


Это конечно не по стандарту, но на иаре вполне работает
dxp
QUOTE (Sagittarius @ Mar 17 2012, 12:14) *
Возможно ли в плюсах разрешить применение incomplete type?

Нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.