Can you extern a #define variable in another file?

36,452

Solution 1

If you have #define NAME "supreeth" in abc.c, you can surely have a extern variable by same name in another file def.c, this is as far as the compiler is concerned. If you are implying some kind of dependency between these two, that dependency/linkage will not happen. Obviously it is confusing and a bad idea to do something like this.

Solution 2

You can not use extern with macro. but if you want your macro seen by many C files

put your macro definition

#define NAME "supreeth"

in a header file like def.h

then include your def.h in your C code and then you can use your macro in your C file in all other C file if you include def.h

Solution 3

In your code NAME is not a variable. It's a pre-processor symbol, which means the text NAME will be replaced everywhere in the input with the string "supreeth". This happens per-file, so it doesn't make sense to talk about it being "external".

If a particular C file is compiled without that #define, any use of NAME will remain as-is.

Share:
36,452
user1295872
Author by

user1295872

Updated on August 05, 2022

Comments

  • user1295872
    user1295872 almost 2 years

    For example abc.c contains a variable

    #define NAME "supreeth"
    

    Can extern the variable NAME in def.c?

  • Keith Thompson
    Keith Thompson about 11 years
    What's possible? There is no variable, and the concept of extern doesn't apply.
  • MOHAMED
    MOHAMED about 11 years
    I did not mean using extern I ean he can define his macro in the header file then he can see it from his C files . may be I have to be more specific I will update my answer