内置函数 (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): 报告编译错误。
这只是部分列表,完整的内置函数列表请参阅官方文档。