小编dee*_*eed的帖子

使用函数名称声明指向函数类型的指针

当我使用函数指针时,我发现 Zig 的一个有点奇怪的特性。

这是函数指针类型的一个简单示例:

const std = @import("std");
const print = std.debug.print;

const aFunc = fn (x: i32) void;

fn theFunc(x: i32) void {
    print("have {}\n", .{x});
}

pub fn main() void {
    const f: aFunc = theFunc;
    f(3);
}
Run Code Online (Sandbox Code Playgroud)

这段代码编译并运行正常。

现在像这样更改它,向aFunc类型定义添加一个名称:

const std = @import("std");
const print = std.debug.print;

const aFunc = fn someFunc (x: i32) void;

fn theFunc(x: i32) void {
    print("have {}\n", .{x});
}

pub fn main() void {
    const f: aFunc = theFunc;
    f(3); …
Run Code Online (Sandbox Code Playgroud)

zig

6
推荐指数
1
解决办法
2085
查看次数

标签 统计

zig ×1