2013-04-29 6 views

Antwort

1

Wenn Sie #define NAME "supreeth" in abc.c haben, können Sie sicherlich eine externe Variable mit dem gleichen Namen in einer anderen Datei def.c haben, das ist so weit wie der Compiler betroffen ist. Wenn Sie eine Art von Abhängigkeit zwischen diesen beiden implizieren, wird diese Abhängigkeit/Verknüpfung nicht passieren. Offensichtlich ist es verwirrend und eine schlechte Idee, so etwas zu tun.

8

Sie können extern nicht mit Makro verwenden. aber wenn Sie Ihr Makro von vielen C-Dateien gesehen wollen

setzen Sie Ihre Makrodefinition

#define NAME "supreeth" 

in einer Header-Datei wie def.h

dann sind Ihre def.h in Ihrem C-Code und dann können Sie Ihr Makro in Ihrer C-Datei in allen anderen C-Datei verwenden, wenn Sie def.h

+0

Was ist möglich? Es gibt keine Variable und das Konzept von "extern" gilt nicht. –

+0

Ich meinte nicht, extern zu verwenden, er kann sein Makro in der Header-Datei definieren, dann kann er es aus seinen C-Dateien sehen. Vielleicht muss ich genauer sein, ich werde meine Antwort aktualisieren – MOHAMED

14

In Ihrem Codeenthaltenist keine Variable. Es ist ein Vorprozessorsymbol, was bedeutet, dass der Text NAME überall in der Eingabe durch die Zeichenfolge "supreeth" ersetzt wird. Dies passiert pro Datei, daher macht es keinen Sinn, darüber zu sprechen, dass es "extern" ist.

Wenn eine bestimmte C-Datei ohne diese #define kompiliert wird, bleibt jegliche Verwendung von NAME so wie sie ist.

Verwandte Themen