Können Sie eine #define-Variable in einer anderen Datei extern?

Lesezeit: 2 Minuten

Benutzeravatar von user1295872
Benutzer1295872

Zum Beispiel abc.c enthält eine Variable

#define NAME "supreeth"

Kann die Variable extern NAME In def.c?

  • 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

MOHAMEDs Benutzeravatar
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 #definejede 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.cDies 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.

1452710cookie-checkKönnen Sie eine #define-Variable in einer anderen Datei extern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy