2013-04-29 8 views

Odpowiedz

1

Jeśli masz w abc.c, z pewnością możesz mieć zmienną extern o tej samej nazwie w innym pliku def.c, to jest tak daleko, jak kompilator. Jeśli sugerujesz jakąś zależność między tymi dwoma, ta zależność/powiązanie nie nastąpi. Oczywiście jest to mylące i zły pomysł, aby zrobić coś takiego.

8

Nie można użyć extern z makro. ale jeśli chcesz, aby makro postrzegane przez wielu plików C

umieścić makro definicję

#define NAME "supreeth" 

w pliku nagłówkowym jak def.h

następnie podać swój def.h w swojej Kod C, a następnie możesz użyć makra w pliku C we wszystkich innych plikach C, jeśli podasz def.h

+0

Co jest możliwe? Nie ma zmiennej, a pojęcie "extern" nie ma zastosowania. –

+0

Nie miałem na myśli używania zewnętrznego, ale mogę zdefiniować jego makro w pliku nagłówkowym, a następnie zobaczyć je z jego plików C. być może muszę być bardziej konkretny, zaktualizuję swoją odpowiedź – MOHAMED

14

W kodzie NAME nie jest zmienną. Jest to symbol pre-procesora, co oznacza, że ​​tekst na całym świecie zostanie zastąpiony ciągiem . Zdarza się to w pliku, więc nie ma sensu mówić o tym, że jest "zewnętrzny".

Jeśli określony plik C zostanie skompilowany bez tego #define, jakiekolwiek użycie NAME pozostanie takie, jakie jest.