Pseudo-genericos en C

Necesito implementar algunos métodos que hagan cosas con diferentes tipos de matrices de números. Por lo general, usaría genéricos para ese trabajo, pero como C no los proporciona, ahora estoy tratando de emularlos usando macros.

Aquí hay un ejemplo de lo que estoy tratando de hacer:

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

Sin embargo, esto no compilará. El mensaje de error clang:

error: esperado ';' despues de declarador de alto nivel

¿Hay alguna manera de hacer esto en C? ¿O necesito implementar esto para cada tipo a mano?

Respuestas a la pregunta(3)

Su respuesta a la pregunta