在 C 语言中实现模板函数的方法(续):
/* 定义一个宏,用来连接两个标识符:*/
#define MAKE_NAME(className, methodName) calssName##__##methodName
/* 模板源文件:template.c
* 必须重定义的宏:TheClass
* 其它需要重定义的宏(如对一个搜索树的实现,需要比较元素或键值大小的宏)
*
*/
Int MAKE_NAME(TheClass, Method1) (int param1, int param2)
{
….
Return 0;
}
Int MAKE_NAME(TheClass, Method2) (int param1, int param2)
{
….
Return 0;
}
Int MAKE_NAME(TheClass, Method3) (int param1, int param2)
{
….
Return 0;
}
…..
/* 引用该模板的文件:samp1.c */
#undef TheClass
#define TheClass Class1
#include template.c
/* end samp1.c */