我需要实现一些方法来处理不同类型的数字数组。通常,我会使用泛型来完成这项工作,但由于 C 没有提供它们,我现在尝试使用宏来模拟它们。
这是我正在尝试做的一个例子:
#ifndef TYPE
#define TYPE int
#endif
TYPE get_minimum_##TYPE (TYPE * nums, int len){
TYPE min = nums[0];
for (int i = 1; i < len; i++) {
if (nums[i] < min) {
min = nums[i];
}
}
return min;
}
但是,这不会编译。铿锵声错误信息:
错误:预期的';' 在顶级声明者之后
有没有办法在C中做到这一点?还是我需要手动为每种类型实现这个?