Можете ли вы extern переменную #define в другом файле?
#define NAME "supreeth"
может extern переменная NAME
на def.c?
3 ответов
Если у вас #define NAME "supreeth"
в abc.c, у вас наверняка может быть переменная extern с тем же именем в другом файле def.c
, это касается компилятора. Если вы подразумеваете какую-то зависимость между этими двумя, эта зависимость/связь не произойдет.
Очевидно, это сбивает с толку и плохая идея сделать что-то подобное.
в коде NAME
не является переменной. Это символ предварительного процессора, что означает текст NAME
будет заменен везде на входе со строки "supreeth"
. Это происходит в каждом файле, поэтому нет смысла говорить о том, что он "внешний".
если конкретный файл C компилируется без этого #define
, использование NAME
останется как есть.
вы не можете использовать extern
С макро. но если вы хотите, чтобы ваш макрос видели многие файлы c
поместите определение макроса
#define NAME "supreeth"
в заголовочном файле, как def.h
затем включите свой def.h в коде C, а затем вы можете использовать свой макрос в файле C во всех других файлах C, если вы включаете def.h