编译与源文件 (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 函数。