Я использую оператор switch для возврата из моей основной функции раньше, если обнаружен какой-то особый случай. Специальные случаи кодируются с использованием типа перечисления, как показано ниже.
typedef enum {
NEG_INF,
ZERO,
POS_INF,
NOT_SPECIAL
} extrema;
int main(){
// ...
extrema check = POS_INF;
switch(check){
NEG_INF: printf("neg inf"); return 1;
ZERO: printf("zero"); return 2;
POS_INF: printf("pos inf"); return 3;
default: printf("not special"); break;
}
// ...
return 0;
}
Как ни странно, когда я запускаю это, строка not special
печатается на консоль, а остальная часть основной функции выполняется с выполнением.
Как я могу заставить оператор switch правильно функционировать здесь? Спасибо!