For example abc.c contains a variable
#define NAME "supreeth"
Can extern the variable NAME in def.c?
For example abc.c contains a variable
#define NAME "supreeth"
Can extern the variable NAME in def.c?
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
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.
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.