Mín e máx em C

Onde estão MIN e MAX definidos em C, Se é que estão? Qual é a melhor maneira de implementar estes, o mais genericamente e tipo de segurança possível? (Compiler extensions/builtins for mainstream compilers preferred.)

É possível usar o # define a partir de outro arquivo cpp?

Acho que o pré-processador lida com Ficheiros um a um e não consigo descobrir como fazê-lo com inclusões, por isso acho ... : Não posso modificar o primeiro ficheiro. Então, por agora eu apenas copiei define. Mas a questão ainda está em aberto.