Я получаю приведенную ниже ошибку при попытке использовать условную компиляцию, как показано ниже: Примечание: обратите внимание, что ONE, TWO и THREE являются символами, определенными перед обработчиком, тогда как THREE является макросом, а компилятор используется IAR (IDE AtmelStudio)
- Добавлены дополнительные скобки для ((определены (ОДИН)) и, скорее всего, для ДВУХ и ТРЕХ
- Попытка включить блок #else только с а) и поставить дополнительный) в концеоператор под #if (SUM)
#if (defined(ONE) && !defined(TWO)
#if (SUM)
&& !defined(THREE)
#endif
)
some_statements_1
#else
some_statements_2
#endif /* #if (defined(ONE) && !defined(TWO) */
Я ожидаю, что some_statements_1
будет выполнено, только если ONE
определено TWO
не определено и случай 1: если SUM
установлено> 0, тогда THREE
не должно быть определено case 2: если SUM
установлено в 0, то как обычно (без проверки THREE
)
Фактический результат:
Pe018: expected a ")" at line 1 and
error: Pe169: expected a declaration at line 3