Benötigt eine statische Funktion das statische Schlüsselwort für den Prototyp in C?
Meine C-Programmierung-Buch sagt, dass, wenn ich will erstellen Sie eine statische Funktion, die ich brauchen, um setzen Sie das Schlüsselwort static vor die Funktion definition. Es muss nicht alles erwähnen explizit über den Prototyp. Auch sind die Beispiele nicht verwenden, Prototypen und einfach die statische Funktionen an den Anfang der Datei (so dass Sie nicht brauchen, Prototypen gehe ich davon aus).
So, hat eine statische Funktion müssen Sie das Schlüsselwort static für den Prototyp? Oder muss ich nur vor der definition?
InformationsquelleAutor der Frage w1res | 2013-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Eine Funktionsdeklaration (Prototyp oder auch die definition) weglassen können, das Stichwort
static
wenn es darum geht, nach einer anderen Erklärung der gleichen Funktion mitstatic
.Wenn es eine
static
Erklärung der Funktion, Ihrer ersten Erklärung hatstatic
.Es ist definiert in ISO/IEC 9899:1999, 6.7.1:
So, z.B. gilt:
Dazu:
Aber dieser code ist falsch:
Normalerweise wird und sollte die
static
im Prototypen zu (weil Sie in der Regel kommen zuerst).InformationsquelleAutor der Antwort undur_gongor
ja, ja, Sie tun müssen, um static vor die Deklaration.
geben Sie diese in ideone.com
erhalten Sie dieses Ergebnis: http://ideone.com/VzZCiE
nun geben Sie dies
erhalten Sie dies: http://ideone.com/sz8HVR
boooom
InformationsquelleAutor der Antwort 75inchpianist