Я написал функцию в C, которая преобразует строку в целое число и возвращает целое число. Когда я вызываю функцию, я также хочу, чтобы она сообщила мне, если строка не является допустимым числом. Раньше я возвращал -1, когда эта ошибка возникала, потому что мне не нужно было преобразовывать строки в отрицательные числа. Но теперь я хочу, чтобы он преобразовывал строки в отрицательные числа, так что лучший способ сообщить об ошибке?
В случае, если я не понял этого: я не хочу, чтобы эта функция сообщала об ошибке пользователю, я хочу сообщить об ошибке коду, который вызвал эту функцию. ( "Отчет" может быть неправильным словом для использования...)
Здесь код:
s32 intval(const char *string) {
bool negative = false;
u32 current_char = 0;
if (string[0] == '-') {
negative = true;
current_char = 1;
}
s32 num = 0;
while (string[current_char]) {
if (string[current_char] < '0' || string[current_char] > '9') {
// Return an error here.. but how?
}
num *= 10;
num += string[current_char] - '0';
current_char++;
}
if (negative) {
num = -num;
}
return num;
}