2 回答
TA貢獻1812條經驗 獲得超5個贊
首先你要理解 C 語言的頭文件(.h 結尾的文件)是什么。
這里的后綴 h 就是 Header File(頭文件)的首字母。一般在頭文件中,會存有程序所需函數的函數原型(Prototype)、一些常量(Constant)、一些變量(Variable)、一些類型(Type)和一些宏(Macro)。
這些存在頭文件中的東西會在編譯時被編譯器原封不動地復制到你的程序源碼(也就是 .c 為后綴的文件)中,以提供你所需要的函數和一些變量的聲明。因此要在 C 源碼的開頭寫入 #include 語句
| 1 | #include <系統頭文件,比如 stdio.h 或者 stdlib.h 等,要用尖括號括起來> |
或者
| 1 | #include "用戶自定義的頭文件,如果是你自己寫的 .h 頭文件,就要用引號括起來" |
來告訴編譯器需要復制到源代碼的頭文件名稱。
然后再看 stdio.h。stdio 是 “Standard Input and Output” 的簡稱,也就是標準輸入輸出。這個頭文件是 C 語言最基礎的頭文件之一,因為它當中包含有最基本的輸入輸出函數的原型,以及一些最基本的常量和宏。我舉幾個比較常用的
| 123456789101112131415161718 | // 函數原型int printf ( const char * format, ... );int scanf ( const char * format, ... );FILE * fopen ( const char * filename, const char * mode );size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); // 常量和宏NULLEOF // 變量stdinstdoutstderr // 類型FILEsize_t |
所以,只有當你包含了 stdio.h 時,以上的這些函數才會被聲明,你才可以在沒有任何編譯警告和錯誤的情況下隨意使用例如 printf 和 scanf 等函數。當然,如果你不包含 stdio,仍然可以使用 printf 或者 scanf 函數,因為它們是 C 語言自帶的幾個基礎函數之一,但是你會收到編譯器的警告,因為編譯器沒有發現這些函數的原型,也就是相當于你沒有聲明這些函數。而且,一些在頭文件中定義的變量和類型你也無法使用。所以,一般會主動包含 stdio.h 頭文件,防止進一步的錯誤。畢竟只有沒有任何警告的編譯才算是真正成功的編譯。
- 2 回答
- 0 關注
- 1842 瀏覽
添加回答
舉報
