我用 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;
}