Pseudo-generics w C

Muszę zaimplementować kilka metod, które wykonują różne rodzaje tablic liczbowych. Zazwyczaj używam generics dla tego zadania, ale ponieważ C ich nie udostępnia, próbuję teraz emulować je za pomocą makr.

Oto przykład tego, co próbuję zrobić:

#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;
}

Jednak to się nie kompiluje. Komunikat o błędzie clang:

błąd: oczekiwany ';' po deklaratorze najwyższego poziomu

Czy można to zrobić w C? Czy może muszę to zaimplementować ręcznie dla każdego typu?

questionAnswers(3)

yourAnswerToTheQuestion