❶ 關於C語言的頭文件的問題,這個頭文件是怎麼進去的,需要自己寫還是編譯器做的
頭文件編譯器會自帶一些的,這些我們大部分都已經足夠使用了。
但有時候我們需要自己寫一些定義,比如函數的申明,全局變數的申明。這樣就可以自己建一個頭文件。然後在代碼裡面添加進去就可以了。
❷ 單片機C語言頭文件
對於C語言的頭文件來說,通常情況下是使用#include+文件名語句進行引用。
格式如下:
#include <stdio.h>
或
#include "MyLib.h"
使用 #include時,使用引號與尖括弧的意思是不一樣的。使用引號」」時,首先搜索工程文件所在目錄,然後再搜索編譯器頭文件所在目錄。所以對於用戶自定義頭文件來說,通常使用雙引號。
而使用尖括弧<>時,剛好是相反的搜索順序。所以對於編譯系統提供的頭文件來說,通常使用尖括弧。
例:
假設我們有兩個文件名一樣的頭文件 hardware.h ,但內容卻是不一樣的。一個保存在編譯器指定的頭文件目錄下,我們把它叫做文件I ,另一個則保存在當前工程的目錄下,我們把它叫做文件 II 。
如果我們使用的是# include <hardware.h>,則我們引用到的是文件 I。如果我們使用的是#include 「hardware.h」,則我們引用的將是文件 II 。
❸ C語言頭文件有哪些
字元處理函數 x0dx0a本類別函數用於對單個字元進行處理,包括字元的類別測試和字元的大小寫轉換 x0dx0ax0dx0a頭文件 ctype.h x0dx0ax0dx0a函數列表<> x0dx0a函數類別 函數用途 詳細說明 x0dx0a字元測試 是否字母和數字 isalnum x0dx0a是否字母 isalpha x0dx0a是否控制字元 iscntrl x0dx0a是否數字 isdigit x0dx0a是否可顯示字元(除空格外) isgraph x0dx0a是否可顯示字元(包括空格) isprint x0dx0a是否既不是空格,又不是字母和數字的可顯示字元 ispunct x0dx0a是否空格 isspace x0dx0a是否大寫字母 isupper x0dx0a是否16進制數字(0-9,A-F)字元 isxdigit x0dx0a字元大小寫轉換函數 轉換為大寫字母 toupper x0dx0a轉換為小寫字母 tolower x0dx0ax0dx0a地區化 x0dx0a本類別的函數用於處理不同國家的語言差異。 x0dx0ax0dx0a頭文件 local.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a地區控制 地區設置 setlocale x0dx0a數字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv x0dx0ax0dx0a數學函數 x0dx0a本分類給出了各種數學計算函數,必須提醒的是ANSI C標准中的數據格式並不符合IEEE754標准,一些C語言編譯器卻遵循IEEE754(例如frinklin C51) x0dx0ax0dx0a頭文件 math.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a錯誤條件處理 定義域錯誤(函數的輸入參數值不在規定的范圍內) x0dx0a值域錯誤(函數的返回值不在規定的范圍內) x0dx0a三角函數 反餘弦 acos x0dx0a反正弦 asin x0dx0a反正切 atan x0dx0a反正切2 atan2 x0dx0a餘弦 cos x0dx0a正弦 sin x0dx0a正切 tan x0dx0a雙曲函數 雙曲餘弦 cosh x0dx0a雙曲正弦 sinh x0dx0a雙曲正切 tanh x0dx0a指數和對數 指數函數 exp x0dx0a指數分解函數 frexp x0dx0a乘積指數函數 fdexp x0dx0a自然對數 log x0dx0a以10為底的對數 log10 x0dx0a浮點數分解函數 modf x0dx0a冪函數 冪函數 pow x0dx0a平方根函數 sqrt x0dx0a整數截斷,絕對值和求余數函數 求下限接近整數 ceil x0dx0a絕對值 fabs x0dx0a求上限接近整數 floor x0dx0a求余數 fmod x0dx0ax0dx0a本分類函數用於實現在不同底函數之間直接跳轉代碼。 頭文件 setjmp.h io.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a保存調用環境 setjmp x0dx0a恢復調用環境 longjmp x0dx0ax0dx0a信號處理 x0dx0a該分類函數用於處理那些在程序執行過程中發生例外的情況。 x0dx0ax0dx0a頭文件 signal.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a指定信號處理函數 signal x0dx0a發送信號 raise x0dx0ax0dx0a可變參數處理 x0dx0a本類函數用於實現諸如printf,scanf等參數數量可變底函數。 x0dx0ax0dx0a頭文件 stdarg.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a可變參數訪問宏 可變參數開始宏 va_start x0dx0a可變參數結束宏 va_end x0dx0a可變參數訪問宏 訪問下一個可變參數宏 va_arg x0dx0ax0dx0a輸入輸出函數 x0dx0a該分類用於處理包括文件、控制台等各種輸入輸出設備,各種函數以「流」的方式實現 x0dx0ax0dx0a頭文件 stdio.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a文件操作 x0dx0a刪除文件 remove x0dx0a修改文件名稱 rename x0dx0a生成臨時文件名稱 tmpfile x0dx0a得到臨時文件路徑 tmpnam x0dx0a文件訪問 關閉文件 fclose x0dx0a刷新緩沖區 fflush x0dx0a打開文件 fopen x0dx0a將已存在的流指針和新文件連接 freopen x0dx0a設置磁碟緩沖區 setbuf x0dx0a設置磁碟緩沖區 setvbuf x0dx0a格式化輸入與輸出函數 格式輸出 fprintf x0dx0a格式輸入 fscanf x0dx0a格式輸出(控制台) printf x0dx0a格式輸入(控制台) scanf x0dx0a格式輸出到緩沖區 sprintf x0dx0a從緩沖區中按格式輸入 sscanf x0dx0a格式化輸出 vfprintf x0dx0a格式化輸出 vprintf x0dx0a格式化輸出 vsprintf x0dx0a字元輸入輸出函數 輸入一個字元 fgetc x0dx0a字元串輸入 fgets x0dx0a字元輸出 fputc x0dx0a字元串輸出 fputs x0dx0a字元輸入(控制台) getc x0dx0a字元輸入(控制台) getchar x0dx0a字元串輸入(控制台) gets x0dx0a字元輸出(控制台) putc x0dx0a字元輸出(控制台) putchar x0dx0a字元串輸出(控制台) puts x0dx0a字元輸出到流的頭部 ungetc x0dx0a直接輸入輸出 直接流讀操作 fread x0dx0a直接流寫操作 fwrite x0dx0a文件定位函數 得到文件位置 fgetpos x0dx0a文件位置移動 fseek x0dx0a文件位置設置 fsetpos x0dx0a得到文件位置 ftell x0dx0a文件位置復零位 remind x0dx0a錯誤處理函數 錯誤清除 clearerr x0dx0a文件結尾判斷 feof x0dx0a文件錯誤檢測 ferror x0dx0a得到錯誤提示字元串 perror x0dx0ax0dx0a實用工具函數 x0dx0a本分類給出了一些函數無法按以上分類,但又是編程所必須要的。 x0dx0ax0dx0a頭文件 stdlib.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a字元串轉換函數 字元串轉換為整數 atoi x0dx0a字元串轉換為長整數 atol x0dx0a字元串轉換為浮點數 strtod x0dx0a字元串轉換為長整數 strtol x0dx0a字元串轉換為無符號長整型 strtoul x0dx0a偽隨機序列產生函數 產生隨機數 rand x0dx0a設置隨機函數的起動數值 srand x0dx0a存儲管理函數 分配存儲器 calloc x0dx0a釋放存儲器 free x0dx0a存儲器分配 malloc x0dx0a重新分配存儲器 realloc x0dx0a環境通信 中止程序 abort x0dx0a退出程序執行,並清除環境變數 atexit x0dx0a退出程序執行 exit x0dx0a讀取環境參數 getenv x0dx0a程序掛起,臨時執行一個其他程序 system x0dx0a搜索和排序工具 二分查找(數據必須已排序) bsearch x0dx0a快速排序 qsort x0dx0a整數運算函數 求絕對值 abs x0dx0adiv x0dx0a得到除法運算底商和余數 x0dx0a求長整形底絕對值 labs x0dx0a求長整形除法的商和余數 ldiv x0dx0a多位元組字元函數 得到多位元組字元的位元組數 mblen x0dx0a得到多位元組字元的位元組數 mbtowc x0dx0a多位元組字元轉換 wctomb x0dx0a多位元組字元的字元串操作 將多位元組串轉換為整數數組 mbstowcs x0dx0a將多位元組串轉換為字元數組 mcstowbs x0dx0ax0dx0a字元串處理 x0dx0a本分類的函數用於對字元串進行合並、比較等操作 x0dx0ax0dx0a頭文件 string.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a字元串拷貝 塊拷貝(目的和源存儲區不可重疊) memcpy x0dx0a塊拷貝(目的和源存儲區可重疊) memmove x0dx0a串拷貝 strcpy x0dx0a按長度的串拷貝 strncpy x0dx0a字元串連接函數 串連接 strcat x0dx0a按長度連接字元串 strncat x0dx0a串比較函數 塊比較 memcmp x0dx0a字元串比較 strcmp x0dx0a字元串比較(用於非英文字元) strcoll x0dx0a按長度對字元串比較 strncmp x0dx0a字元串轉換 strxfrm x0dx0a字元與字元串查找 字元查找 memchr x0dx0a字元查找 strchr x0dx0a字元串查找 strcspn x0dx0a字元串查找 strpbrk x0dx0a字元串查找 strspn x0dx0a字元串查找 strstr x0dx0a字元串分解 strtok x0dx0a雜類函數 字元串設置 memset x0dx0a錯誤字元串映射 strerror x0dx0a求字元串長度 strlen x0dx0ax0dx0a日期和時間函數 x0dx0a本類別給出時間和日期處理函數 x0dx0ax0dx0a頭文件 time.h x0dx0ax0dx0a函數列表 x0dx0a函數類別 函數用途 詳細說明 x0dx0a時間操作函數 得到處理器時間 clock x0dx0a得到時間差 difftime x0dx0a設置時間 mktime x0dx0a得到時間 time x0dx0a時間轉換函數 得到以ASCII碼表示的時間 asctime x0dx0a得到字元串表示的時間 ctime x0dx0a得到指定格式的時間 strftime x0dx0ax0dx0a函數庫未來的發展方向 x0dx0a本部分用於說明各類別函數庫在將來如何發展。 x0dx0ax0dx0a序號 庫類別 頭文件 詳細說明 x0dx0a1 錯誤處理 errno.h x0dx0a2 字元處理 ctype.h x0dx0a3 地區化 local.h x0dx0a4 數學函數 math.h x0dx0a5 信號處理 signal.h x0dx0a6 輸入輸出 stdio.h x0dx0a7 實用工具程序 stdlib.h x0dx0a8 字元串處理 string.h
❹ C語言編譯器怎麼把函數原型放在頭文件中
你可以嘗試模仿了如下方法
網頁鏈接
❺ c語言中如何編譯頭文件啊
只要在程序開頭加入#include<頭文件名>,在編譯過程當中,頭文件自動會被添加到源文件當中一起進行編譯。
編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。
C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件。
❻ arm-linux-gcc怎麼編譯自己寫的頭文件
linux gcc編譯c文件頭文件
linux gcc編譯c文件頭文件,使用GCC編譯器編譯C語言
凶豬下山
轉載
關注
0點贊·1047人閱讀
GCC編譯C源代碼有四個步驟:預處理—->編譯—->匯編—->鏈接。
可以利用GCC的參數來控制執行的過程,這樣就可以更深入的了解編譯C程序的過程。
下面將通過對一個程序的編譯來演示整個過程。
#include
int main()
{
printf("happy new year!\n");
return 0;
}
1:預處理:編譯器將C程序的頭文件編譯進來,還有宏的替換,可以用gcc的參數-E來參看。
預處理 命令:gcc -E hello.c -o hello.i
作用:將hello.c預處理輸出hello.i
2:編譯:這個階段編譯器主要做詞法分析、語法分析、語義分析等,在檢查無錯誤後後,把代碼翻譯成匯編語言。可用gcc的參數-S來參看。
編譯器(ccl)將文本文件hello.i 翻譯成文本文件hello.s, 它包含一個匯編語言程序。匯編語言程序中的每條語句都以一種標準的文本格式描述了一條低級機器語言指令。
編譯命令:gcc -S hello.i -o hello.s
作用:將預處理輸出文件hello.i匯編成hello.s文件
3:匯編:把編譯階段生成的.s 文件轉換為二進制目標代碼。可用gcc的參數-c來參看。匯編器(as)將hello.s翻譯成機器語言指令,把這些指令打包成可重定位目標程序的格式, 並將結果保存在目標文件hello.o中。hello.o文件是一個二進制文件,它的位元組編碼是機器語言。
匯編 命令:gcc -c hello.s -o hello.o
作用:作用:將匯編輸出文件hello.s編譯輸出hello.o文件
4:鏈接:把obj文件鏈接為可執行的文件:鏈接器(ld)負責.o文件的並入。結果就是hello文件,它是一個課執行的目標文件,可以載入到存儲器後由系統調用。
鏈接命令:gcc hello.o -o hello
一步操作的話是: (-o必須在hello之前 )
$gcc hello.c -o hello
$./hello或者:(會默認生成a.out文件)
$gcc hello.c
$./a.out
❼ 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(7)頭文件編譯器語言擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。