반응형
여러 정의가 정의되어 있지 않은지 사전 프로세서가 확인합니다.
사용자가 편집할 수 있는 #defines가 헤더에 있습니다.따라서 사용자가 그것들을 모두 삭제했을 경우의 정의가 존재하는지 확인합니다.
#if defined MANUF && defined SERIAL && defined MODEL
// All defined OK so do nothing
#else
#error "User is stoopid!"
#endif
이 방법은 완벽하게 작동합니다. 하지만 여러 정의가 제대로 설정되어 있지 않은지 확인할 수 있는 더 좋은 방법이 있는지 궁금합니다. 예를 들어 다음과 같습니다.
#ifn defined MANUF || defined SERIAL ||.... // note the n in #ifn
또는 아마도
#if !defined MANUF || !defined SERIAL ||....
빈 #if 섹션의 필요성을 제거합니다.
#if !defined(MANUF) || !defined(SERIAL) || !defined(MODEL)
FWIW, @SergeyL의 답변은 훌륭합니다만, 여기 테스트용의 몇개의 변종이 있습니다.논리 또는 논리 및 로의 변경에 주의해 주세요.
main.c에는 다음과 같은 메인 래퍼가 있습니다.
#if !defined(TEST_SPI) && !defined(TEST_SERIAL) && !defined(TEST_USB)
int main(int argc, char *argv[]) {
// the true main() routine.
}
spi.c, serial.c 및 usb.c에는 다음과 같은 각 테스트코드의 메인랩퍼가 있어요
#ifdef TEST_USB
int main(int argc, char *argv[]) {
// the main() routine for testing the usb code.
}
config.h모든 c파일에 포함되는 엔트리는 다음과 같습니다.
// Uncomment below to test the serial
//#define TEST_SERIAL
// Uncomment below to test the spi code
//#define TEST_SPI
// Uncomment below to test the usb code
#define TEST_USB
언급URL : https://stackoverflow.com/questions/17237545/preprocessor-check-if-multiple-defines-are-not-defined
반응형
'programing' 카테고리의 다른 글
vuex 변환이 DOM을 업데이트하지 않음 (0) | 2022.07.18 |
---|---|
Apache Commons equals/hashCode 빌더 (0) | 2022.07.18 |
URL을 변경하지 않고 WebApp을 vue-i18n으로 변환 (0) | 2022.07.18 |
Vue - 마운트 전 시간에 데이터가 계산되지 않음 (0) | 2022.07.18 |
Nuxt Vuex 저장소에 알 수 없는 작업 유형 (0) | 2022.07.18 |