当需要使用其他语言(如C++)抛出异常时,在C中返回什么?

xia*_*o 啸 1 c exception

我在C中实现了一个htoi(十六进制整数到八进制整数)函数.函数签名如下:

int htoi(char* s);
Run Code Online (Sandbox Code Playgroud)

基本逻辑相当简单,主要关注的是如何处理极端测试数据,如oxazzz,ox ??? DFSLA等无效十六进制数.显然,一些神奇的数字不起作用,因为结果可能是任何整数.

我想采取的一个解决方案是更改功能签名,例如:

int htoi(char* s, bool* error);

当s不是有效的十六进制数时,将错误设置为true.但它似乎不是一个好的解决方案.因此,处理这种情况应该是什么最好的做法,因为C中没有可用的异常抛出机制?

Nik*_*sov 5

看看如何strtol(3)做的.不是说它是理想的,只是一个例子.