iOS iOS 启动优化之自注册--attribute date_range 2025-07-01 Clang 提供了很多的编译器函数,它们可以完成不同的功能。其中一种就是 section() 函数,section()函数提供了二进制段的读写能力,它可以将一些编译期就可以确定的常量写入数据段。 在具体的实现中,主要分为编译期和运行时两个部分。在编译期,编译器会将标记了 attribute((section())) 的数据写到指定的数据段中,例如写一个{key(key 代表不同的启动阶段), pointer}对到数据段。到运行时,在合适的时间节点,在根据 key 读取出函数指针,完成函数的调用。*