2013-12-03 5 views
0

Я искал хороший ресурс, который дает возможность обсуждать лучшие практики условной компиляции и переносимости перекрестных платформ для проектов C.Условная компиляция - альтернативы реализации

Например:

Дать сетевую библиотеку, которая (в зависимости от основной платформы) либо использует TCP или SCTP. Обычный подход, вероятно, должен был бы определить общую спецификацию API и позволить make-файлу решить скомпилировать правильную реализацию.

Я не могу представить, что условная компиляция с использованием MACROS и дублирования кода является хорошей идеей здесь (так как такая реализация сети в основном одинакова, с разными примитивами SEND и RECEIVE).

Есть ли у кого-нибудь хорошие предложения или хороший ресурс, обсуждающий лучшие практики этих проблем?

Спасибо за ваш ввод!

+1

Есть ли что-то не так с обычным подходом? Вы пытались найти какие-либо существующие примеры других библиотек, используя этот подход? –

+0

проблема, с которой я столкнулась при использовании макросов для таких проблем, заключается в том, что (если они используются чаще), они делают тестирование очень громоздким. –

ответ

0

Макросы хороши, если вы ограничиваете их очень небольшим количеством мест. Пример:

#if defined LINUX 
# include "linux/mylib.h" 
#elif defined WINDOWS 
# include "windows/mylib.h" 
#else 
# error "unsupported platform!" 
#endif 
+0

true, но как бы вы делили общий код между обеими библиотеками, что эквивалентно на обеих платформах? Возможно, ввести один уровень заголовка заголовка? –

 Смежные вопросы

  • Нет связанных вопросов^_^