У меня есть файл C с определением функции.C множественные определения функций с использованием препроцессора
#ifdef SOMEFEATURE
myfunction_withfeature()
#else
myfunction_withoutfeature()
#endif
{
do_something;
#ifdef SOMEFEATURE
do_one_way;
#else
do_another_way;
#endif
do_something_else;
}
Если я определяю SOMEFEATURE в заголовке или в Makefile я получаю одну версию, если я не получаю другую версию. Мне нужны две версии. Я понимаю, что могу копировать и вставлять код и определять/деформировать символ, но это кажется беспорядочным. Есть ли способ, которым я могу определить обе функции без дублирования кода?
Может быть, это очевидно для других, но я не понимаю ваш вопрос. «Мне нужны две версии»? Две версии чего? У вас уже нет двух версий этой функции? –
Я хочу определить как myfunction_withfeature(), так и myfunction_withoutfeature(). Эти функции очень похожи и отличаются только частями, окруженными макросами препроцессора. Я хочу сохранить один экземпляр кода, но обе функции скомпилированы в исполняемый файл. – user2965755