我想从 c 调用 Zig 函数,但 fn 返回类型是错误联合
!void
或 MyType.Error!u32
如何处理错误?
假设我们有以下内容
lib.zig
pub fn errorProneFunction(param1: *Task, param2: u32) Error!u32 {
return Error.TooManyTasksForLazyMe;
}
我想从c调用函数
type??? my_var = errorProneFunction(&task, 0);
export
。并且此类函数无法返回错误联合。编译器会给出这样的错误:
src\main.zig:3157:33: error: return type '@typeInfo(@typeInfo(@TypeOf(main.errorProneFunction)).Fn.return_type.?).ErrorUnion.error_set!u32' not allowed in function with calling convention 'C'
export fn errorProneFunction() !u32 {
^~~