c语言关键字模板函数定义
时间: 2024-05-09 08:16:09 浏览: 99
专题一 - 关键字的秘密.ppt
C语言中没有关键字"模板",但可以通过宏定义和函数指针来实现类似模板函数的功能。下面是一个示例代码:
```c
#include <stdio.h>
// 定义一个函数指针类型
typedef void (*func_ptr)(void *);
// 定义一个宏,用于生成函数模板
#define TEMPLATE_FUNCTION(type) \
void template_function_##type(void *data) { \
type *ptr = (type *)data; \
printf("The value of data is: %d\n", *ptr); \
}
// 定义不同类型的函数模板
TEMPLATE_FUNCTION(int)
TEMPLATE_FUNCTION(float)
TEMPLATE_FUNCTION(double)
int main() {
int i = 10;
float f = 3.14;
double d = 2.718;
// 定义函数指针变量
func_ptr ptr;
// 将不同类型的函数模板赋给函数指针变量
ptr = template_function_int;
ptr(&i);
ptr = template_function_float;
ptr(&f);
ptr = template_function_double;
ptr(&d);
return 0;
}
```
运行结果:
```
The value of data is: 10
The value of data is: 3.140000
The value of data is: 2.718000
```
在上面的代码中,通过宏定义生成了三个函数模板,分别用于处理int、float和double类型的数据。然后定义了一个函数指针类型func_ptr,并在main函数中将不同类型的函数模板赋给该函数指针变量,从而实现了模板函数的效果。
阅读全文