我刚从 C# 来到 C,并正在寻找一种方法来定义像 C# 中的泛型函数。我遇到了这篇文章,但是当我试图编译它时,我得到了一堆错误(“`n' undeclared here (not in a function)”、“在“array”之前的语法错误”等)这是我的代码:
#include<conio.h>
#include<stdlib.h>
#define MAKE_PRINTEACH(TYPE)\
void printeach_##TYPE (TYPE[n] array, int n, void(*f)(TYPE)){\
int i;\
for(i = 0; i < n; i++) {\
f(array[i]);\
}\
}
MAKE_PRINTEACH(int)
MAKE_PRINTEACH(float)
void printInt(int x)
{
printf("got %d\n",x);
}
void printFloat(float x)
{
printf("got %f\n",x);
}
int main()
{
int[5] ia = {34,61,3,6,76};
float[6] fa = {2.4,0.5,55.2,22.0,6.76,3.14159265};
printeach_int(ia, 5, printInt);
printeach_float(fa,6,printFloat);
getch();
}
我在这里做错了什么?如果这有所作为,我正在使用 DevC++。