我很难理解thrd_join的用法。它的声明如下:
int thrd_join( thrd_t thr, int *res );
该部分内容如下:
如果 res 不是空指针,则将线程的结果代码放到 res
指向的位置
所以我认为变量 res 包含要连接的线程的返回码。当时用于 thrd_join()的返回值是多少?这是一个代码表示加入是否成功以及我是否可以认真对待 res 的内容?
我有这个权利吗?
答案 0 :(得分:2)
主题为started,函数为thrd_start_t
,其为int(*)(void*)
的typedef(参见here),即它需要void *
,并且返回int
。此函数的返回值存储在res
指向的位置。调用thrd_join
本身的返回码是它的返回值。
答案 1 :(得分:-2)
该函数与C中的许多函数类似,其中函数返回表示错误或成功的“错误代码”,并且函数具有保存实际输出的out参数。
在某些情况下,您可以忽略这些错误代码,例如printf
也会返回int
,但我们通常不会检查其返回类型。
如果错误情况很有可能,那么检查错误是好的。
请注意,在java
或C#
等语言中,函数返回实际输出,Exceptions
是表示可能错误的方法。