Я пишу программу на C, которая включает в себя множество функций, некоторые из которых потребуются только на определенных машинах определенным людям. Некоторые функции требуют установки определенных библиотек, и без них программа не будет компилироваться.
Я хочу иметь возможность включать и отключать определенные биты функциональности, чтобы он мог компилироваться без дополнительных библиотек, необходимых для некоторых битов.
Мне было интересно, есть ли согласованный способ сделать это в C, и как вы могли бы это сделать?
Я думаю, что я бы использовал #define INCLUDE_BOOT_FUNCTIONALITY
, а затем внутри BootFunctionality.c
я бы использовал #ifdef INCLUDE_BOOT_FUNCTIONALITY
в верхней части, чтобы включить в него только код перед компиляцией, если он был определен. Затем я хотел бы перейти к каждому фрагменту кода, где используется BootFunctionality.c
, и заключить его в команду препроцессора #ifdef.
Это приемлемый способ ведения дел или есть лучший?
Для контекста, мой код написан в модульной форме, где каждый модуль, например BootFunctionality.c
, работает в своем собственном потоке и просто запускается в начале программы и вызывает функции, доступные в Main.c
, для разговора. назад. Чтобы удалить его, все, что мне нужно сделать, это удалить, где он включен в Main.h
и удалить строку в Main.c
, которая запускает этот поток.