Например abc.c содержит переменнуюМожете ли вы заменить переменную #define в другом файле?
#define NAME "supreeth"
Может Экстерн в def.c переменную NAME
?
Например abc.c содержит переменнуюМожете ли вы заменить переменную #define в другом файле?
#define NAME "supreeth"
Может Экстерн в def.c переменную NAME
?
Если у вас есть #define NAME "supreeth"
в abc.c, вы можете иметь внешнюю переменную с тем же именем в другом файле def.c
, это касается компилятора. Если вы подразумеваете какую-то зависимость между этими двумя, эта зависимость/связь не произойдет. Очевидно, что это сбивает с толку и плохая идея сделать что-то подобное.
Вы не можете использовать extern
с макросом. но если вы хотите, чтобы ваш макрос видел много файлов C
положить макроопределения
#define NAME "supreeth"
в заголовочном файле как def.h
затем включить ваш def.h в вашем C, а затем вы можете использовать свой макрос в своем файле C во всех других файлах C, если вы включили def.h
Что возможно? Нет переменной, и понятие «extern» не применяется. –
Я не имел в виду использование extern. Я могу определить его макрос в файле заголовка, тогда он может видеть его из своих C-файлов. может быть, я должен быть более конкретным, я обновлю свой ответ – MOHAMED
В вашем коде NAME
не является переменной. Это символ препроцессора, что означает, что текст NAME
будет заменен повсюду на входе строкой "supreeth"
. Это происходит в каждом файле, поэтому не имеет смысла говорить о том, что он является «внешним».
Если конкретный файл C скомпилирован без этого #define
, любое использование NAME
останется как есть.
Определение - это препроцессорная директива. При компиляции кода он заменяется встроенным. Вам нужно будет определить его в файле header (include). –