Zum Beispiel abc.c enthält eine Variable
#define NAME "supreeth"
Kann die Variable extern NAME
In def.c?
Benutzer1295872
Zum Beispiel abc.c enthält eine Variable
#define NAME "supreeth"
Kann die Variable extern NAME
In def.c?
MOHAMED
Sie können nicht verwenden extern
mit Makro. aber wenn Sie möchten, dass Ihr Makro von vielen C-Dateien gesehen wird
Geben Sie Ihre Makrodefinition ein
#define NAME "supreeth"
in einer Header-Datei wie def.h
dann füge deine hinzu def.h in Ihrem C-Code und dann können Sie Ihr Makro in Ihrer C-Datei in allen anderen C-Dateien verwenden, wenn Sie es einbinden def.h
Was ist möglich? Es gibt keine Variable und das Konzept von extern
trifft nicht zu.
– Keith Thompson
29. April 2013 um 14:45 Uhr
Ich meinte nicht die Verwendung von extern. Ich meine, er kann sein Makro in der Header-Datei definieren und es dann in seinen C-Dateien sehen. Möglicherweise muss ich genauer sein. Ich werde meine Antwort aktualisieren
– MOHAMED
29. April 2013 um 14:47 Uhr
In deinem Code NAME
ist keine Variable. Es ist ein Präprozessorsymbol, das den Text bedeutet NAME
wird überall in der Eingabe durch die Zeichenfolge ersetzt "supreeth"
. Dies geschieht pro Datei, daher macht es keinen Sinn, davon zu sprechen, dass es sich um eine „externe“ Datei handelt.
Wenn eine bestimmte C-Datei ohne das kompiliert wird #define
jede Verwendung von NAME
bleibt so wie es ist.
Wenn Sie haben #define NAME "supreeth"
In abc.c können Sie sicherlich eine externe Variable mit demselben Namen in einer anderen Datei haben def.c
Dies gilt für den Compiler. Wenn Sie eine Art Abhängigkeit zwischen diesen beiden implizieren, wird diese Abhängigkeit/Verknüpfung nicht auftreten. Offensichtlich ist es verwirrend und eine schlechte Idee, so etwas zu tun.
Eine Definition ist eine Präprozessoranweisung. Es wird beim Kompilieren des Codes inline ersetzt. Sie müssen es in einer Header-Datei (include) definieren.
– woodleg.as
29. April 2013 um 13:35 Uhr