Я родом из C #, но сейчас изучаю C. В C #, когда кто-то хочет сообщить, что произошла ошибка, вы бросаете исключение. Но что ты делаешь в C?
Скажем, например, у вас есть стек с функциями push
и pop
. Как лучше всего сигнализировать, что стек пуст во время pop
? Что вы возвращаете из этой функции?
double pop(void)
{
if(sp > 0)
return val[--sp];
else {
printf("error: stack empty\n");
return 0.0;
}
}
Пример K & R со страницы 77 ( код выше ) возвращает 0.0
. Но что, если пользователь поместил 0.0
ранее в стек, как вы узнаете, пуст ли стек или было ли возвращено правильное значение?