Мне нужно реализовать некоторые методы, которые делают вещи с различными типами массивов чисел. Обычно я использую generics для этой работы, но поскольку 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;
}
Однако это не будет компилироваться. Сообщение об ошибке clang:
error: expected ';' после объявления верхнего уровня
Есть ли способ сделать это в C? Или мне нужно реализовать это для каждого типа вручную?