⑴ c語言中windows.h頭文件有什麼作用如何正確使用
一、頭文件作用
C語言里,每個源文件是一個模塊,頭文件為使用該模塊的用戶提供介面。介面指一個功能模塊暴露給其他模塊用以訪問具體功能的方法。
使用源文件實現模塊的功能,使用頭文件暴露單元的介面。用戶只需包含相應的頭文件就可使用該頭文件中暴露的介面。
通過頭文件包含的方法將程序中的各功能模塊聯系起來有利於模塊化程序設計:
1)通過頭文件調用庫功能。在很多場合,源代碼不便(或不準)向用戶公布,只要向用戶提供頭文件和二進制庫即可。用戶只需按照頭文件中的介面聲明來調用庫功能,而不必關心介面如何實現。編譯器會從庫中提取相應的代碼。
2)頭文件能加強類型安全檢查。若某個介面的實現或使用方式與頭文件中的聲明不一致,編譯器就會指出錯誤。這一簡單的規則能大大減輕程序員調試、改錯的負擔。
在預處理階段,編譯器將源文件包含的頭文件內容復制到包含語句(#include)處。在源文件編譯時,連同被包含進來的頭文件內容一起編譯,生成目標文件(.obj)。
如果所包含的頭文件非常龐大,則會嚴重降低編譯速度(使用GCC的-E選項可獲得並查看最終預處理完的文件)。因此,在源文件中應僅包含必需的頭文件,且盡量不要在頭文件中包含其它頭文件。
二、用法
C/C++ 程序在源文件前面寫 #include <windows.h>即可。
作用
頭文件封裝了庫函數以及一些類,將一些復雜的工作由庫函數處理,而用戶不必把精力放在這些地方。比如說cout<<,為標准輸出流,其實說到底還是函數調用,不過這個函數有些特殊,用的是運算符重載,確切地說是重載了「<<」運算符,作用是將鍵盤輸入的在屏幕上列印出來,這個功能要是由我們去寫,估計也得學個兩三年才有可能。所以就簡化了操作。
而這一系列的函數都在頭文件中包含(是一個函數庫)。在調用時包含後便可直接用。
⑵ 頭文件里的頭文件是幹嘛的
第一種情況,把每個代碼塊所需要的頭文件都包含在內,是為了方便代碼重用,也就是這個項目的代碼有可能需要移植到另一個項目中,如果不把頭文件寫清楚,那麼就會產生很多不必要的麻煩
第二種情況,是能夠保證上面說的情況不會出現才使用的,一般都是自己寫的小型工程里
頭文件里一般都會使用
#ifndef _B_H_ //假設這里是b.h
#define _B_H_
... //代碼略
#endif
來避免頭文件被重復包含後出現的編譯錯誤
在visual c++中,可以直接在頭文件第一行處使用
#pragma once
來防止頭文件被重復包含,效果與上面的代碼一樣
⑶ 求C語言所有常用頭文件用途
字元處理函數
本類別函數用於對單個字元進行處理,包括字元的類別測試和字元的大小寫轉換
頭文件 ctype.h
函數列表<>
函數類別 函數用途 詳細說明
字元測試 是否字母和數字 isalnum
是否字母 isalpha
是否控制字元 iscntrl
是否數字 isdigit
是否可顯示字元(除空格外) isgraph
是否可顯示字元(包括空格) isprint
是否既不是空格,又不是字母和數字的可顯示字元 ispunct
是否空格 isspace
是否大寫字母 isupper
是否16進制數字(0-9,A-F)字元 isxdigit
字元大小寫轉換函數 轉換為大寫字母 toupper
轉換為小寫字母 tolower
地區化
本類別的函數用於處理不同國家的語言差異。
頭文件 local.h
函數列表
函數類別 函數用途 詳細說明
地區控制 地區設置 setlocale
數字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv
數學函數
本分類給出了各種數學計算函數,必須提醒的是ANSI C標准中的數據格式並不符合IEEE754標准,一些C語言編譯器卻遵循IEEE754(例如frinklin C51)
頭文件 math.h
函數列表
函數類別 函數用途 詳細說明
錯誤條件處理 定義域錯誤(函數的輸入參數值不在規定的范圍內)
值域錯誤(函數的返回值不在規定的范圍內)
三角函數 反餘弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
餘弦 cos
正弦 sin
正切 tan
雙曲函數 雙曲餘弦 cosh
雙曲正弦 sinh
雙曲正切 tanh
指數和對數 指數函數 exp
指數分解函數 frexp
乘積指數函數 fdexp
自然對數 log
以10為底的對數 log10
浮點數分解函數 modf
冪函數 冪函數 pow
平方根函數 sqrt
整數截斷,絕對值和求余數函數 求下限接近整數 ceil
絕對值 fabs
求上限接近整數 floor
求余數 fmod
本分類函數用於實現在不同底函數之間直接跳轉代碼。 頭文件 setjmp.h io.h
函數列表
函數類別 函數用途 詳細說明
保存調用環境 setjmp
恢復調用環境 longjmp
信號處理
該分類函數用於處理那些在程序執行過程中發生例外的情況。
頭文件 signal.h
函數列表
函數類別 函數用途 詳細說明
指定信號處理函數 signal
發送信號 raise
可變參數處理
本類函數用於實現諸如printf,scanf等參數數量可變底函數。
頭文件 stdarg.h
函數列表
函數類別 函數用途 詳細說明
可變參數訪問宏 可變參數開始宏 va_start
可變參數結束宏 va_end
可變參數訪問宏 訪問下一個可變參數宏 va_arg
輸入輸出函數
該分類用於處理包括文件、控制台等各種輸入輸出設備,各種函數以「流」的方式實現
頭文件 stdio.h
函數列表
函數類別 函數用途 詳細說明
文件操作
刪除文件 remove
修改文件名稱 rename
生成臨時文件名稱 tmpfile
得到臨時文件路徑 tmpnam
文件訪問 關閉文件 fclose
刷新緩沖區 fflush
打開文件 fopen
將已存在的流指針和新文件連接 freopen
設置磁碟緩沖區 setbuf
設置磁碟緩沖區 setvbuf
格式化輸入與輸出函數 格式輸出 fprintf
格式輸入 fscanf
格式輸出(控制台) printf
格式輸入(控制台) scanf
格式輸出到緩沖區 sprintf
從緩沖區中按格式輸入 sscanf
格式化輸出 vfprintf
格式化輸出 vprintf
格式化輸出 vsprintf
字元輸入輸出函數 輸入一個字元 fgetc
字元串輸入 fgets
字元輸出 fputc
字元串輸出 fputs
字元輸入(控制台) getc
字元輸入(控制台) getchar
字元串輸入(控制台) gets
字元輸出(控制台) putc
字元輸出(控制台) putchar
字元串輸出(控制台) puts
字元輸出到流的頭部 ungetc
直接輸入輸出 直接流讀操作 fread
直接流寫操作 fwrite
文件定位函數 得到文件位置 fgetpos
文件位置移動 fseek
文件位置設置 fsetpos
得到文件位置 ftell
文件位置復零位 remind
錯誤處理函數 錯誤清除 clearerr
文件結尾判斷 feof
文件錯誤檢測 ferror
得到錯誤提示字元串 perror
實用工具函數
本分類給出了一些函數無法按以上分類,但又是編程所必須要的。
頭文件 stdlib.h
函數列表
函數類別 函數用途 詳細說明
字元串轉換函數 字元串轉換為整數 atoi
字元串轉換為長整數 atol
字元串轉換為浮點數 strtod
字元串轉換為長整數 strtol
字元串轉換為無符號長整型 strtoul
偽隨機序列產生函數 產生隨機數 rand
設置隨機函數的起動數值 srand
存儲管理函數 分配存儲器 calloc
釋放存儲器 free
存儲器分配 malloc
重新分配存儲器 realloc
環境通信 中止程序 abort
退出程序執行,並清除環境變數 atexit
退出程序執行 exit
讀取環境參數 getenv
程序掛起,臨時執行一個其他程序 system
搜索和排序工具 二分查找(數據必須已排序) bsearch
快速排序 qsort
整數運算函數 求絕對值 abs
div
得到除法運算底商和余數
求長整形底絕對值 labs
求長整形除法的商和余數 ldiv
多位元組字元函數 得到多位元組字元的位元組數 mblen
得到多位元組字元的位元組數 mbtowc
多位元組字元轉換 wctomb
多位元組字元的字元串操作 將多位元組串轉換為整數數組 mbstowcs
將多位元組串轉換為字元數組 mcstowbs
字元串處理
本分類的函數用於對字元串進行合並、比較等操作
頭文件 string.h
函數列表
函數類別 函數用途 詳細說明
字元串拷貝 塊拷貝(目的和源存儲區不可重疊) memcpy
塊拷貝(目的和源存儲區可重疊) memmove
串拷貝 strcpy
按長度的串拷貝 strncpy
字元串連接函數 串連接 strcat
按長度連接字元串 strncat
串比較函數 塊比較 memcmp
字元串比較 strcmp
字元串比較(用於非英文字元) strcoll
按長度對字元串比較 strncmp
字元串轉換 strxfrm
字元與字元串查找 字元查找 memchr
字元查找 strchr
字元串查找 strcspn
字元串查找 strpbrk
字元串查找 strspn
字元串查找 strstr
字元串分解 strtok
雜類函數 字元串設置 memset
錯誤字元串映射 strerror
求字元串長度 strlen
日期和時間函數
本類別給出時間和日期處理函數
頭文件 time.h
函數列表
函數類別 函數用途 詳細說明
時間操作函數 得到處理器時間 clock
得到時間差 difftime
設置時間 mktime
得到時間 time
時間轉換函數 得到以ASCII碼表示的時間 asctime
得到字元串表示的時間 ctime
得到指定格式的時間 strftime
函數庫未來的發展方向
本部分用於說明各類別函數庫在將來如何發展。
序號 庫類別 頭文件 詳細說明
1 錯誤處理 errno.h
2 字元處理 ctype.h
3 地區化 local.h
4 數學函數 math.h
5 信號處理 signal.h
6 輸入輸出 stdio.h
7 實用工具程序 stdlib.h
8 字元串處理 string.h
⑷ C\C++頭文件的作用
1、在C語言中,頭文件是程序各部分之間保證信息一致性的橋梁,是連接程序對象定義和使用的紐帶。
以.h為擴展名的輔助性文件,也稱為頭文件;
以.c為擴展名的基本程序文件,也稱為源代碼文件。
2、用於指定模塊介面的聲明放在文件中,文件名中應標明其預期用途。
提供Vector實現的.cpp文件還將包括提供其介面的.h文件:
為了幫助編譯器確保一致性,提供向量實現的.cpp文件以及包括提供其介面的.h文件:
(4)頭文件的用途有哪些擴展閱讀
1、C++頭文件的聲明其實現及使用
例:
////user.cpp:
#include「Vector.h」//獲取Vector的介面
#include<cmath>//獲取標准庫y數學函數介面,包括sqrt()
doublesqrt_sum(Vector&v)
{
doublesum=0;
對於(inti=0;i!=v.size();++i)
sum+=std::sqrt(v[i]);//平方根
之和返回和;
}
⑸ C語言頭文件的作用
主要是給你編程提供方便,提供了一些底層的庫函數,封裝了操作系統上的操作介面
⑹ c語言中,頭文件是什麼意思有什麼用
頭文件:在C語言家族程序中,頭文件被大量使用。一般而言,每個C++/C程序版通常由頭文權件和定義文件組成。頭文件作為一種包含功能函數、數據介面聲明的載體文件,主要用於保存程序的聲明,而定義文件用於保存程序的實現。
頭文件的主要作用在於多個代碼文件全局變數(函數)的重用、防止定義的沖突,對各個被調用函數給出一個描述,其本身不需要包含程序的邏輯實現代碼,它只起描述性作用,用戶程序只需要按照頭文件中的介面聲明來調用相關函數或變數,鏈接器會從庫中尋找相應的實際定義代碼。
(6)頭文件的用途有哪些擴展閱讀:
對於具有外部存儲類型的標識符,可以在其他任何一個源程序文件中經聲明後引用,此用戶完全可以將一些具有外部存儲類型的標識符的聲明放在一個頭文件中。具體地說,頭文件中可以包括:用戶構造的數據類型(如枚舉類型),外部變數,外部函數、常量和內聯函數等具有一定通用性或常用的量。而一般性的變數和函數定義不宜放在頭文件中。