我想知道爲什麼我從來沒有見過以下方式在C中實現模板 。我的想法是讓預處理器進行模板工作。使用預處理器在C中模板化
container.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);
的main.c:
#define TEMPLATE_TYPE int
#include "container.h"
int main() {
Container_int c;
c.data = 99923;
}
那麼,有什麼情況?
- 這只是認爲是「不良作風」
- 它是如此明顯,沒有人會寫它
- 有很多的文章,只是谷歌的人的文章!
如果您不打算用#3回答計劃 ,我將不勝感激。
你以前從未見過這種事情嗎? – Dave
語法糖導致分號的癌症... –
我認爲這個問題屬於[http://codereview.stackexchange.com/](http://codereview.stackexchange.com/)。 –