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