Можно ли отключить куски кода с препроцессором c/C++ в зависимости от определенного определения, без кода с кодом #ifdef #endif
?Отключить многострочные операторы с макросом c/C++
// if ENABLE_TEST_SONAR is not defined, test code will be eliminated by preprocessor
TEST_BEGIN(SONAR)
uint8_t sonar_range = get_sonar_measurement(i);
TEST_ASSERT(sonar_range < 300)
TEST_ASSERT(sonar_range > 100)
TEST_END
Аналогична что-то выглядит следующим образом:
#ifdef TEST_SONAR
serial_print("test_case sonar:\r\n");
uint8_t sonar_range = get_sonar_measurement(i);
serial_print(" test sonar_range < 300:%d\r\n", sonar_range < 300);
serial_print(" test sonar_range > 100:%d\r\n", sonar_range > 100);
#endif TEST_SONAR
Почему? Это буквально то, что '# ifdef' за ......... говорит о повторной разработке колеса .... –
Мне также нужно добавить дополнительную функциональность для TEST_BEGIN, так что просто хотел сделать это в одном линия. – DikobrAz
Вы можете быть немного более лаконичными с «отключить»? Вы имеете в виду генерировать код, связывать его, но не выполнять его? – Dinesh