Ich bin ein Neuling und versuche zu verstehen Programm in C. Im Programm gibt es eine Header-Datei typedef.h
, die erklärt typedef struct { int i; char b;} rdi;
Clarify C Variablen
Dann gibt es 3 Ordner und jeder Ordner hat mehrere Programme zu verstehen, dass eine bestimmte Aufgabe ausführen und jeder Ordner hat eine Header-Datei. In der Header-Datei von je 3 Ordner hat es
#include typfedef.h
und erklärte dann
extern rdi *rdi_x;
In allen drei Ordner, die er es getan hat. Aber ich sehe es nicht, wo im Programm definiert:
rdi rdi_x;
Meine Frage ist, ob es nicht erforderlich ist rdi rdi_x;
im Programm zu definieren.
Wie ich von c-Lehrbüchern verstehe, irgendwo im Programm muss es rdi rdi_x;
definieren oder mein Verständnis ist nicht gut.
Wahr, R Sahu. Aber ist es keine Definition? (Eine Definition ist auch eine Deklaration). – Peter
@Peter, nein. Es ist keine Definition. Es wird unter zwei Umständen definiert: 1. Es ist auch initialisiert. 'extern rdi * rdi_x = NULL;'. 2. Das 'extern' Schlüsselwort wird nicht verwendet. 'rdi * rdix_x;'. –
'rdi rdi_x;' wäre ein Fehler, die Definition muss mit der Deklaration übereinstimmen, 'rdi * rdi_x;' –