У меня есть фрагмент кода, который я хочу включить, если определен один из двух макросов.
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
Как мне это сделать на C?
У меня есть фрагмент кода, который я хочу включить, если определен один из двух макросов.
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
Как мне это сделать на C?
Помимо #ifdef
, препроцессор поддерживает более общую инструкцию #if
; на самом деле #ifdef MACRO
— это сокращение для #if defined(MACRO)
, где defined
— это «функция препроцессора», которая возвращает 1, если макрос определен; Итак, вы можете сделать:
#if defined(MACRO1) || defined(MACRO2)
void foo()
{
}
#endif
Вот версия НЕ, если необходимо:
#if !defined(MACRO1) && !defined(MACRO2)
...
#endif