gpt4 book ai didi

c - C语言返回值函数如何返回错误

转载 作者:行者123 更新时间:2023-12-02 06:47:09 26 4
gpt4 key购买 nike

<分区>

我想知道在 C 中处理返回值函数错误的最佳实践是什么。首先,我想介绍一下需求,然后分享一些我尝试过的解决方案,并听取不同的想法。

问题是当我有一个返回值函数时,这个函数可以返回范围内的任何值,而且这个函数有时会遇到一个问题,它必须同时返回调用函数,它不能使用传统的返回值原因。我该如何处理调用函数中的错误?

几点说明:1. 我是一名嵌入式程序员,我热衷于以不同中断不会损害全局变量的方式保持我的函数可重入(纯)函数,我几乎不在我的代码中使用全局变量。

  1. 我不能用 0 或 -1 来处理它,因为它也是一个有效的返回值。

  2. errno 解决方案与 1 一样不支持纯函数。

4.我尝试使用返回结构,其中一个字段用于值,一个字段用于错误(如果发生)。

unsigned int squre(unsigned int num)
{
return num*num;
}

程序员说我想要溢出句柄。

struct returnUnsignedint squre(unsigned int num)
{
struct returnUnsignedint returnValue;
if (num>65535) { //my embedded system over flow
returnValue.error = 1;
}
returnValue.value = num*num;
return returnValue;
}

还有更好的选择吗?

如果您有不同的观点或解决方案,请告诉我。

如果有任何帮助,我将不胜感激!

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com