? ? ? ?我們寫"Hello World!"程序時,一上來先寫了一句代碼:
#include <stdio.h>
? ? ? ?我們看上面這條代碼,前面有個"#"號后邊沒有";"號,這樣的代碼不是普通的C語言代碼,它屬于預處理命令。這條代碼的含義是包含"stdio.h"這個頭文件。
? ? ? ?我們編寫C語言程序,程序要用到的功能肯定不都是我們從頭寫的,那樣太麻煩了。許多功能C語言已經自帶了,我們需要什么功能去調用就行了。例如printf()函數就是C語言自帶的,我們直接使用即可。C語言自帶的這些功能存放在哪里呢?它們都存放在標準庫中。標準庫是由許多的文件組成的,這些文件有不同功能的定義,把某一類功能打包到一個文件中我們就稱這個文件為xx頭文件、庫文件。比如printf()這個函數就定義stdio.h這個頭文件中,編程中要想使用printf()先包含這個頭文件。頭文件的后綴是".h"。
? ? ? ?我們把#include <xx.h>命令稱為包含xx頭文件,等后邊我們學習"預處理器"相關內容再往細處理解include命令。如果我們在編程中有報錯"未定義標識符",首先檢查是否拼寫錯了,如不是就要檢查是否包含了相關的頭文件。我們自己也可以寫自己的頭文件,使用時把這個頭文件包含進來,就不用重新敲代碼了。
? ? ?? 實際上,頭文件中只是函數的聲明,而函數的實現在庫文件中。 在C語言中,頭文件是可讀的,而庫文件是以二進制編碼形式存儲的。對于C語言自身的頭文件和庫文件,當我們使用某函數時只要我們在代碼中包含了相關的頭文件后,編譯器會自動通過頭文件找到庫文件,把需要的內容編譯到我們的程序中,不需要我們再考慮。
? ? ? ?而對于某些與C語言共享的頭文件和庫文件,我們在使用時,不僅要包含頭文件,還要導入相關的庫文件。比如,當在程序中想要使用背景音樂時就是這樣,看例子:
#include "mmsystem.h" //包含與音樂相關的頭文件#pragma comment(lib,"winmm.lib") //導入庫文件
? ? ? ?提醒注意,包含系統提供的頭文件用一對尖括號括起文件名,包含我們自己寫的頭文件或其它外來頭文件時要使用雙引號引起來,這是區別。stdio.h這個頭文件幾乎包含初學者用到的所有功能,所以開始階段只要包含了這個頭文件就可以進行我們的學習了。其它頭文件隨著學習的深入一點點掌握。