我有一個簡單的程序,C程序如何獲取庫函數的定義,如printf
#include<stdio.h>
void main()
{
printf(" Hello all \n");
}
-
在上述程序
- ,它是如何獲得的庫函數printf的定義。
- as printf是一個庫函數,所以在我們的程序中它是如何鏈接和鏈接的,以及編譯器如何知道鏈接哪個庫。
- 上述程序中的哪一行指示編譯器鏈接與printf相關的庫。
我有一個簡單的程序,C程序如何獲取庫函數的定義,如printf
#include<stdio.h>
void main()
{
printf(" Hello all \n");
}
stdio.h
(只是進行類型檢查)。該定義本身位於C標準庫(UNIX上的libc.so
)中。libc.so
,所以它總是找到這個定義。藉助其他圖書館的其他功能,您必須自己找出並提供圖書館。在上面的程序中,它是如何得到庫函數printf的定義的。
編譯器可以以任何方式使其工作。最常見的方法是實際上有一個名爲stdio.h
的文件,該文件具有該定義。
as printf是一個庫函數,所以在我們的程序中它是如何鏈接的,它何時被鏈接,,,以及編譯器如何知道鏈接哪個庫。
編譯器要麼硬編碼,要知道要鏈接到哪個庫或者你必須告訴它。
上述程序中的哪一行向編譯器指示鏈接與printf相關的庫。
這取決於編譯器。它可以檢測到#include <stdio.h>
並鏈接庫。它可以隨時鏈接圖書館。如果你明確地問它,它只能鏈接圖書館。檢查你的編譯器的文檔或詢問一個特定的編譯器。
一個這就是爲什麼它被稱爲標準庫。