编译与源文件 (Compilation & Source)
编译变量 (Compile Variables)
通过 @import("builtin") 可以访问编译时变量,这些变量提供了关于当前编译环境的信息。
builtin.is_test: 如果代码是作为测试构建的一部分进行编译,则为true。builtin.target: 表示当前的编译目标(例如x86_64-linux-gnu)。builtin.cpu: 当前 CPU 的信息。builtin.os: 目标操作系统。builtin.arch: 目标架构。
编译模型 (Compilation Model)
Zig 采用独特的编译模型,常被比作“超级汇编器”。它不依赖于外部 C 编译器,而是能够直接从源代码生成机器码,并且可以无缝地集成 C 代码。
源文件结构 (Source File Structs)
一个 Zig 源文件在概念上可以看作是一个顶层结构体(struct)。文件中所有的顶层声明(变量、函数、结构体、枚举等)都属于这个隐式的顶层结构体。
文件和声明发现 (File and Declaration Discovery)
Zig 编译器通过跟踪 @import 语句来发现文件和声明。它不会自动查找文件,所有依赖关系都必须显式地通过 @import 声明。
特殊根声明 (Special Root Declarations)
顶层命名空间被称为 root。在 root 中,有一些特殊的声明被编译器识别,例如 main 函数或 init 函数。