[an error occurred while processing this directive]
Можно писать на С в стиле С++ что я собственно часто и делаю. Теряются только вещи типа виртуальных функций, множественного наследования и еще нескольких мелочей, типа нет автоматической инициализации при создании экземпляра "класса"
(«Телесистемы»: Конференция 'Цифровые сигнальные процессоры (DSP) и их применение')

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

Отправлено AntZ 28 мая 2004 г. 12:55
В ответ на: Тут С++ помогает конкретно. Конструктор с деструктором всегда рядом, а в С программах часто бывает, что malloc в одном файле, а free в другом, особенно если писатель только с ассемблера перескочил и о модульном программировании понятия не имеет ;-). Плюсы заставляют писать модульно, что уже хорошо. Тоже касается и глобальных переменных с доступом из кучи фалов - рядовая ситуация в С. отправлено andy_P 28 мая 2004 г. 12:28

Выглядит это так


typedef struct tag_MDM_BQueue MDM_BQueue;
struct tag_MDM_BQueue
{
uint16 Size; /* Buffer Size */
uint16 Length; /* Buffer Length */
int16 Data[QUEUE_SIZE]; /* Buffer Data */
};

int BQUEUE_Open (MDM_BQueue *Context, int Size);
int BQUEUE_Close (MDM_BQueue *Context);
int BQUEUE_NumberOfBytes (MDM_BQueue *Context);
int BQUEUE_PutByte (MDM_BQueue *Context, int Byte);
int BQUEUE_GetByte (MDM_BQueue *Context);

Класс стал структом, все методы префиксуются одним префиксом - типа "методы класса". Первый параметр у всех функций - указатель на структуру - полный аналог this который в C++ передается неявно. Open & Close - конструктор и дкструктор.

Некоторая ущербность конечно есть, но не напрягает - все что мне надо из С++ я могу сделать на С с некоторыми извратами. Ну для embedded своя специфика и простота и эффективность имеют приоритет над красивостью и правильностью С++.


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

Ответы


Отправка ответа

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

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

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru