Wie kann ich eine Funktion erstellen, die einen parameter nimmt, unbekannter Typ in C?

Sagen, ich habe den folgenden code:

struct test* t1;
t1 = get_t(1);

... wo get_t ist:

struct test* get_t(int);

Wie kann ich umgestalten, den obigen code, und legte es in eine Funktion? So etwas wie die folgenden:

void r1(?* t, ?* (fn*)(int)) {
    t = fn(1);
}

/* ... */

struct test* t1;
r1(t1, &get_t);
  • Nun könnte man verwenden void r1(struct test* t, struct test* (fn*)(int))... warum ist der parameter der unbekannten geben?
  • Da möchte ich die gleiche Funktion für einen, sagen wir, struct another_test. Ebenso habe ich struct test* t1 und verwenden r1(t1, &get_t), ich möchte in der Lage sein, auch struct another_test* t2 und verwenden r1(t2, &get_at), wo get_at zurück struct another_test*, und die gleichen Dinge tut, um es zu erhalten.
InformationsquelleAutor rid | 2011-05-17
Schreibe einen Kommentar