Как остановить прекомпиляцию в C?

Посмотрите на код в config.h:

#if (API_TYPE == 1)
    #define URL_API @"https://dapi.xxx.com/1.1/"
#elif (API_TYPE == 2)
    #define URL_API @"https://tapi.xxx.com/1.1/"
#elif (API_TYPE == 3)
    #define URL_API @"https://api.xxx.com/1.1/"
#else
   // I want stop pre-compile if in here.
   // assert(0);
#endif

API_TYPE может быть определен только как 1,2,3. Это неправильно, если определиться как другое значение. Я могу написать недопустимый код в #else пути. Но это не идеально. Есть ли какая-либо команда или метод, чтобы остановить процесс предварительной компиляции, если он идет по пути #else?

2 ответа

Решение

Вы можете вставить #error "Error message", который прекратит предварительную обработку и компиляция даже не начнется.

Использовать #error

http://en.wikipedia.org/wiki/C_preprocessor

Другие вопросы по тегам