Ich muss einige Methoden implementieren, die mit verschiedenen Arten von Anzahl Arrays stopfen. Normalerweise verwende ich Generics für diesen Job, aber da C sie nicht bereitstellt, versuche ich jetzt, sie mit Makros zu emulieren.Pseudo-Generika in C
Hier ist ein Beispiel dafür, was ich versuche zu tun:
#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;
}
Dies wird jedoch nicht kompilieren. Die Clam-Fehlermeldung:
error: expected ';' after top level declarator
Gibt es eine Möglichkeit, dies in C zu tun? Oder muss ich das für jeden Typ von Hand umsetzen?
fyi generics in C# und java sind eine Laufzeiteinrichtung. –
Wenn Sie ein wenig mehr über "Templates"/"Generics" in C lesen möchten, [können Sie diese Frage lesen] (http://stackoverflow.com/questions/10950828/simulation-of-templates-in-c). Es gibt einige interessante Antworten :) – Jehan