Смотря какие шаблоны вас интересуют, если простейшие типа
Код
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