Can you extern a #define variable in another file?
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.
user1295872
Updated on August 05, 2022Comments
-
user1295872 almost 2 years
For example abc.c contains a variable
#define NAME "supreeth"
Can extern the variable
NAME
in def.c? -
Keith Thompson about 11 yearsWhat's possible? There is no variable, and the concept of
extern
doesn't apply. -
MOHAMED about 11 yearsI 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