内置函数 (Builtin Functions)

Zig 编译器提供了许多内置函数,这些函数以 @ 符号开头。它们提供了对编译器特性的访问,或者执行那些无法仅仅通过标准库代码有效完成的操作。

以下是一些常用的内置函数:

导入与编译

  • @import(path): 导入另一个 Zig 文件或包。
  • @cImport(expression): 解析 C 头文件。
  • @cInclude(path): 在 @cImport 块中包含 C 头文件。
  • @cDefine(name, value): 在 @cImport 块中定义 C 宏。

类型信息

  • @TypeOf(expression): 返回表达式的类型。
  • @typeName(T): 返回类型 T 的名称(字符串)。
  • @sizeOf(T): 返回类型 T 的大小(字节)。
  • @alignOf(T): 返回类型 T 的对齐要求(字节)。
  • @typeInfo(T): 返回类型 T 的详细反射信息(std.builtin.Type)。
  • @Type(info): 根据反射信息创建类型(@typeInfo 的逆操作)。

转换

  • @intCast(value): 将整数显式转换为另一种整数类型。如果值超出范围,则是运行时错误。
  • @floatCast(value): 转换浮点数类型。
  • @ptrCast(value): 转换指针类型。
  • @bitCast(value): 将值的位模式重新解释为另一种类型(类型大小必须相同)。
  • @enumFromInt(value): 将整数转换为枚举。
  • @intFromEnum(value): 将枚举转换为整数。
  • @intFromPtr(value): 将指针转换为地址(整数)。
  • @ptrFromInt(value): 将地址(整数)转换为指针。

内存操作

  • @memcpy(dest, source): 复制内存。
  • @memset(dest, value): 设置内存值。

算术运算

  • @addWithOverflow(a, b): 执行加法,并返回结果和溢出位。
  • @mulWithOverflow(a, b): 执行乘法,并返回结果和溢出位。
  • @subWithOverflow(a, b): 执行减法,并返回结果和溢出位。
  • @sqrt(value): 计算平方根。
  • @sin(value), @cos(value), @tan(value): 三角函数。

其他

  • @panic(message): 引发运行时 panic。
  • @breakpoint(): 插入调试器断点。
  • @compileLog(args...): 在编译期间打印消息(会导致编译失败)。
  • @compileError(message): 报告编译错误。

这只是部分列表,完整的内置函数列表请参阅官方文档。

另请参阅: