Я искал повсюду, и информация в сети, кажется, предполагает, что условная компиляция с использованием препроцессора работает исключительно с переменными среды.
По сути, я хотел бы, чтобы встроенная функция или макрос выполняли различные операции на основево входных аргументах.Пример того, чего я хочу достичь:
inline void foo(int x) {
#if (x < 32)
register0 |= (1 << x);
#else
register1 |= (1 << (x - 32));
#endif
}
Основная цель здесь заключается в том, чтобы полученный встроенный код не содержал условный код для постоянных входных данных.
По сути, в настоящее время я программирую для микроконтроллера(lpc213x) и хотел бы иметь встроенную функцию или макрос для настройки конфигурации выводов.Поскольку конфигурации выводов разделены на несколько регистров (например, 0 и 1 выше), я хотел бы выполнить некоторые условные проверки, чтобы решить, в какой регистр следует записать данные для данной константы вывода.
Однако выводвсе конфигурации являются постоянными во время компиляции, поэтому я хотел бы исключить условные проверки из кода компиляции.Я знаю, что оптимизация, скорее всего, избавит от ненужных условий в любом случае, но мне интересно, есть ли способ явно реализовать это поведение, потому что мне может понадобиться отключить оптимизацию в будущем.
Спасибо,
FRob