我想知道为什么我以前从未见过以下在 C 中实现模板的方法。我的想法是使预处理器用于模板工作。
容器.h:
#ifndef TEMPLATE_TYPE
#error "missing decalaration TEMPLATE_TYPE"
#endif
#define _CONCAT(a, b) a##b
#define _EVALUATOR(a, b) _CONCAT(a, b)
#define MAKE_NAME(a, b) _EVALUATOR(a, b)
typedef struct {
TEMPLATE_TYPE data;
} MAKE_NAME(Container_, TEMPLATE_TYPE);
主.c:
#define TEMPLATE_TYPE int
#include "container.h"
int main() {
Container_int c;
c.data = 99923;
}
那么,到底是怎么回事?
- 这只是被认为是“坏风格”
- 太明显了,没有人会写一篇关于它的文章
- 有很多文章,只是google man!
当您不打算回答 #3 时,我将不胜感激有关此技术的评论。