在 C 程序中,如果我从 /usr/include 的头文件中调用函数,到底会发生什么?

In a C program, what exactly happens under the hood if I call a function from a header file from /usr/include?

C库函数的头文件可以在/usr/include下找到。然而,实际的源文件似乎并不仅仅位于文件系统中的任何位置。

那么,如果我在我的 C 程序中从 /usr/include 的头文件中调用一个函数,到底会发生什么?

C 库的实现通常作为 共享库 存储在系统中,通常具有 .so 扩展名。这些库通常位于 /usr/lib,但它们可以位于基于系统的其他位置。

当您的程序被编译和链接时,它会自动链接到 C 标准库。然后当它运行时,它会加载与其链接的共享库。