Ich versuche, c zu lernen, also habe ich versucht, etwas Quellcode zu lesen.
Aber ich habe keine Ahnung, was das bedeuten könnte:Array als Funktion mit Argumenten?
static const char*(*const functab[])(void)={
ram,date
};
Der erste Teil, static const char*
ist in Ordnung, da es sich um eine Funktion zu sein scheint (hat ein Argument vom Typ void
) sollte static
bedeuten, dass es nur sichtbar in dieser Datei und const char*
sollte bedeuten, dass der Wert nicht geändert werden kann, aber die Adresse kann geändert werden.
Aber in diesem Fall ist es nicht sinn nach dem letzten Teil nach den Funktionsnamen machen, wie es der Fall mit
static const char * date(void);
static const char * ram(void);
Statt des Funktionsnamen dort (*const functab[])
war, ein const Array functab enthält genannt ist Adressen?
Ist dies eine Art Wrapping-Funktion mit den Funktionen RAM und Datum? Eine alternative Möglichkeit, Arrays zu deklarieren?
Dies könnte helfen: http: // cdecl.org/. – paulotorrens
@paulotorens Nein, es ist nicht möglich, diese Seite ist ziemlich dumm. Versuchen Sie den vollkommen feinen Code im Beispiel des OP und Sie erhalten "Syntaxfehler". Ich nehme an, sie beziehen sich auf einen Syntaxfehler im Quellcode von cdecl.org ... – Lundin
Stellt sich heraus, dass cdecl.org das statische Schlüsselwort nicht erkennt. Wie erbärmlich. – Lundin