Bedenken sie:
extern int extern_sqr(int i) { return i * i; }
static int static_dbl(int i) { return i * 2; }
Dann beziehen sich Personen, die sich auf extern_sqr
beziehen, auf diese Funktion. Dies steht im Gegensatz zu static
Verknüpfung, wo nur Personen aus der "Übersetzungseinheit" (grob gesagt die Datei, die es definiert ist) Zugriff auf die Funktion .
Es stellt sich heraus, dass die extern
standardmäßig in c implizit ist. So würde man das gleiche Verhalten erhalten, wenn Sie schreibt:
int extern_sqr(int i) { return i * i; }
Neuere C-Standards erfordern nach wie vor eine "Funktionsdeklaration" so, in der Regel in einer Header-Datei irgendwo, werden Sie feststellen:
int extern_sqr(int i); // Note: 'i' is optional
Welche „irgendwo, in einer anderen Übersetzungseinheit sagt, habe ich eine Funktion extern_sqr
genannt.
Die gleiche Logik auf Variablen gilt.
Entschuldigung, bist du neu in c? Meiner Meinung nach ist K & R kein geeignetes Einführungsbuch für Anfänger. – yehnan
Wenn Sie sich jedoch bemühen, K & R zu verstehen, werden Sie C wirklich gut verstehen. Ich sage: Bleiben Sie dran. –
Ich bin nicht gegen die Frage. Ich bemerkte, dass Ashma mehrere Fragen gestellt hatte. Ich wünsche Ihnen aufrichtig, dass er ein geeigneteres Buch für Sie verwenden kann. – yehnan