Перейти к содержанию
    

Шаблоны на языке С

Недавно друг мне задал задачу. Как реализовать с помощью макросов в С структуру являющуюся пусть и не полным аналогом шаблонов в С++, но очень на неё похожую. Попытался изучить данный интересный вопрос, в инете ничего не нашел похожего и интересного. Кто-то слышал раньше про такое? Как данную задачу реализовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 Смотря какие шаблоны вас интересуют, если простейшие типа

template< typename T >

struct mystruct_t{T a, b,c; T *prev, *next;}

 

 

То можно обойтись конструкцией наподобии

 

// обьявляем тип

#define MYSTRUCT_T(T) typedef struct {T a, b, c; T *prev, *next;} mystruct_##T##_t;

// используем для обьявления переменных

#define MYSTRUCT(T) mystruct_##T##_t

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

// обьявляем тип

#defiene MYSTRUCT_T(T) typedef struct {T a, b, c; T *prev, *next;} mystruct_##T##_t;

// используем для обьявления переменных

#defiene MYSTRUCT(T) mystruct_##T##_t;

#define

, а не

#defiene

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в целом вы не пооветуете никаких книг для программирования паттернов на Си?

Изменено пользователем head_sk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...