Определить для конкретных файлов

Можете ли вы помочь мне со следующей проблемой?
У меня есть файл log.cpp, в который включены разные файлы в проект. Мне нужно объявить define в одном из тех файлов, который должен влиять на log.cpp, без фактического изменения в log.cpp или log.h.
Как я могу это сделать?
Решение с предварительно скомпилированным заголовком не приемлемо.

И еще один вопрос, как я могу определить статическую функцию?
Я имею в виду, если у меня есть CClass::Func называется в моем коде, как я могу определить его для перенаправления на что-то еще?

0

Решение

Если вы хотите повлиять на заголовок, вы можете поместить это определение перед включением:

#define SOMEDEFINE SOMEVALUE
#include log.h
// May want to remove or change our define here
#undef SOMEDEFINE

Это предполагает, что вы имели в виду, что вы включаете log.h, так как вы не хотите включать cpp из других файлов. Идея наличия отдельных файлов .h и .cpp заключается в том, что .h — это интерфейс, который видят все модули компиляции, тогда как cpp — это сам код, который должен быть скомпилирован только один раз, и не должен отличаться в зависимости от того, какой модуль компиляции вы используете. ссылаясь на это.

1

Другие решения

Со всеми известными мне компиляторами C ++ вы можете #define символы в командной строке. Обычно это делается с помощью -D вариант.

0

По вопросам рекламы [email protected]