Псевдообобщения в Си

Мне нужно реализовать некоторые методы, которые делают вещи с различными видами числовых массивов. Обычно я использовал бы дженерики для этой работы, но поскольку 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? Или мне нужно реализовать это для каждого типа вручную?

Ответы на вопрос(3)

Ваш ответ на вопрос