真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言中不同的頭函數(shù),c語(yǔ)言頭函數(shù)什么意思

求C語(yǔ)言中頭文件及函數(shù)的含意的總分類

ALLOC.H 說明內(nèi)存管理函數(shù)(分配、釋放等)。

奉化網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),奉化網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為奉化千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的奉化做網(wǎng)站的公司定做!

ASSERT.H 定義 assert調(diào)試宏。

BIOS.H 說明調(diào)用IBM—PC ROM BIOS子程序的各個(gè)函數(shù)。

CONIO.H 說明調(diào)用DOS控制臺(tái)I/O子程序的各個(gè)函數(shù)。

CTYPE.H 包含有關(guān)字符分類及轉(zhuǎn)換的名類信息(如 isalpha和toascii等)。

DIR.H 包含有關(guān)目錄和路徑的結(jié)構(gòu)、宏定義和函數(shù)。

DOS.H 定義和說明MSDOS和8086調(diào)用的一些常量和函數(shù)。

ERRON.H 定義錯(cuò)誤代碼的助記符。

FCNTL.H 定義在與open庫(kù)子程序連接時(shí)的符號(hào)常量。

FLOAT.H 包含有關(guān)浮點(diǎn)運(yùn)算的一些參數(shù)和函數(shù)。

GRAPHICS.H 說明有關(guān)圖形功能的各個(gè)函數(shù),圖形錯(cuò)誤代碼的常量定義,正對(duì)不同驅(qū)動(dòng)程序的各種顏色值,及函數(shù)用到的一些特殊結(jié)構(gòu)。

IO.H 包含低級(jí)I/O子程序的結(jié)構(gòu)和說明。

LIMIT.H 包含各環(huán)境參數(shù)、編譯時(shí)間限制、數(shù)的范圍等信息。

MATH.H 說明數(shù)學(xué)運(yùn)算函數(shù),還定了 HUGE VAL 宏, 說明了matherr和matherr子程序用到的特殊結(jié)構(gòu)。

MEM.H 說明一些內(nèi)存操作函數(shù)(其中大多數(shù)也在STRING.H 中說明)。

PROCESS.H 說明進(jìn)程管理的各個(gè)函數(shù),spawn…和EXEC …函數(shù)的結(jié)構(gòu)說明。

SETJMP.H 定義longjmp和setjmp函數(shù)用到的jmp buf類型, 說明這兩個(gè)函數(shù)。

SHARE.H 定義文件共享函數(shù)的參數(shù)。

SIGNAL.H 定義SIG[ZZ(Z] [ZZ)]IGN和SIG[ZZ(Z] [ZZ)]DFL常量,說明rajse和signal兩個(gè)函數(shù)。

STDARG.H 定義讀函數(shù)參數(shù)表的宏。(如vprintf,vscarf函數(shù))。

STDDEF.H 定義一些公共數(shù)據(jù)類型和宏。

STDIO.H 定義Kernighan和Ritchie在Unix System V 中定義的標(biāo)準(zhǔn)和擴(kuò)展的類型和宏。還定義標(biāo)準(zhǔn)I/O 預(yù)定義流:stdin,stdout和stderr,說明 I/O流子程序。

STDLIB.H 說明一些常用的子程序:轉(zhuǎn)換子程序、搜索/ 排序子程序等。

STRING.H 說明一些串操作和內(nèi)存操作函數(shù)。

SYS\STAT.H 定義在打開和創(chuàng)建文件時(shí)用到的一些符號(hào)常量。

SYS\TYPES.H 說明ftime函數(shù)和timeb結(jié)構(gòu)。

SYS\TIME.H 定義時(shí)間的類型time[ZZ(Z] [ZZ)]t。

TIME.H 定義時(shí)間轉(zhuǎn)換子程序asctime、localtime和gmtime的結(jié)構(gòu),ctime、 difftime、 gmtime、 localtime和stime用到的類型,并提供這些函數(shù)的原型。

VALUE.H 定義一些重要常量, 包括依賴于機(jī)器硬件的和為與Unix System V相兼容而說明的一些常量,包括浮點(diǎn)和雙精

分類函數(shù),所在函數(shù)庫(kù)為ctype.h

int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否則返回0

int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9')

返回非0值,否則返回0

int isascii(int ch) 若ch是字符(ASCII碼中的0-127)返回非0值,否則返回0

int iscntrl(int ch) 若ch是作廢字符(0x7F)或普通控制字符(0x00-0x1F)

返回非0值,否則返回0

int isdigit(int ch) 若ch是數(shù)字('0'-'9')返回非0值,否則返回0

int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否則返回0

int islower(int ch) 若ch是小寫字母('a'-'z')返回非0值,否則返回0

int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否則返回0

int ispunct(int ch) 若ch是標(biāo)點(diǎn)字符(0x00-0x1F)返回非0值,否則返回0

int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回車符('\r'),

走紙換行('\f'),垂直制表符('\v'),換行符('\n')

返回非0值,否則返回0

int isupper(int ch) 若ch是大寫字母('A'-'Z')返回非0值,否則返回0

int isxdigit(int ch) 若ch是16進(jìn)制數(shù)('0'-'9','A'-'F','a'-'f')返回非0值,

否則返回0

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母('A'-'Z')

數(shù)學(xué)函數(shù),所在函數(shù)庫(kù)為math.h、stdlib.h、string.h、float.h

int abs(int i) 返回整型參數(shù)i的絕對(duì)值

double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對(duì)值

double fabs(double x) 返回雙精度參數(shù)x的絕對(duì)值

long labs(long n) 返回長(zhǎng)整型參數(shù)n的絕對(duì)值

double exp(double x) 返回指數(shù)函數(shù)ex的值

double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中

double ldexp(double value,int exp); 返回value*2exp的值

double log(double x) 返回logex的值

double log10(double x) 返回log10x的值

double pow(double x,double y) 返回xy的值

double pow10(int p) 返回10p的值

double sqrt(double x) 返回+√x的值

double acos(double x) 返回x的反余弦cos-1(x)值,x為弧度

double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度

double atan(double x) 返回x的反正切tan-1(x)值,x為弧度

double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度

double cos(double x) 返回x的余弦cos(x)值,x為弧度

double sin(double x) 返回x的正弦sin(x)值,x為弧度

double tan(double x) 返回x的正切tan(x)值,x為弧度

double cosh(double x) 返回x的雙曲余弦cosh(x)值,x為弧度

double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度

double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度

double hypot(double x,double y) 返回直角三角形斜邊的長(zhǎng)度(z),

x和y為直角邊的長(zhǎng)度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整數(shù)

double floor(double x) 返回不大于x的最大整數(shù)

void srand(unsigned seed) 初始化隨機(jī)數(shù)發(fā)生器

int rand() 產(chǎn)生一個(gè)隨機(jī)數(shù)并返回這個(gè)數(shù)

double poly(double x,int n,double c[])從參數(shù)產(chǎn)生一個(gè)多項(xiàng)式

double modf(double value,double *iptr)將雙精度數(shù)value分解成尾數(shù)和階

double fmod(double x,double y) 返回x/y的余數(shù)

double frexp(double value,int *eptr) 將雙精度數(shù)value分成尾數(shù)和階

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成浮點(diǎn)數(shù)并返回這個(gè)浮點(diǎn)數(shù)

double atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個(gè)整數(shù)

double atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整數(shù)并返回這個(gè)整數(shù)

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),

并返回這個(gè)數(shù),

int matherr(struct exception *e)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒有必要使用)

unsigned int _clear87() 清除浮點(diǎn)狀態(tài)字并返回原來的浮點(diǎn)狀態(tài)

void _fpreset() 重新初使化浮點(diǎn)數(shù)學(xué)程序包

unsigned int _status87() 返回浮點(diǎn)狀態(tài)字

目錄函數(shù),所在函數(shù)庫(kù)為dir.h、dos.h

int chdir(char *path) 使指定的目錄path(如:"C:\\WPS")變成當(dāng)前的工作目錄,成

功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功

返回0

pathname為指定的目錄名和文件名,如"C:\\WPS\\TXT"

ffblk為指定的保存文件信息的一個(gè)結(jié)構(gòu),定義如下:

┏━━━━━━━━━━━━━━━━━━┓

┃struct ffblk ┃

┃{ ┃

┃ char ff_reserved[21]; /*DOS保留字*/┃

┃ char ff_attrib; /*文件屬性*/ ┃

┃ int ff_ftime; /*文件時(shí)間*/ ┃

┃ int ff_fdate; /*文件日期*/ ┃

┃ long ff_fsize; /*文件長(zhǎng)度*/ ┃

┃ char ff_name[13]; /*文件名*/ ┃

┃} ┃

┗━━━━━━━━━━━━━━━━━━┛

attrib為文件屬性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━┓

┃FA_RDONLY 只讀文件┃FA_LABEL 卷標(biāo)號(hào)┃

┃FA_HIDDEN 隱藏文件┃FA_DIREC 目錄 ┃

┃FA_SYSTEM 系統(tǒng)文件┃FA_ARCH 檔案 ┃

┗━━━━━━━━━┻━━━━━━━━┛

例:

struct ffblk ff;

findfirst("*.wps",ff,FA_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)通過盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等)組成一個(gè)文件名

存與path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)

此函數(shù)將文件名path分解成盤符drive(C:、A:等),路徑dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),擴(kuò)展名ext(.EXE、.COM等),并分別存入相應(yīng)的變量中.

int getcurdir(int drive,char *direc) 此函數(shù)返回指定驅(qū)動(dòng)器的當(dāng)前工作目錄名稱

drive 指定的驅(qū)動(dòng)器(0=當(dāng)前,1=A,2=B,3=C等)

direc 保存指定驅(qū)動(dòng)器當(dāng)前工作路徑的變量 成功返回0

char *getcwd(char *buf,iint n) 此函數(shù)取當(dāng)前工作目錄并存入buf中,直到n個(gè)字

節(jié)長(zhǎng)為為止.錯(cuò)誤返回NULL

int getdisk() 取當(dāng)前正在使用的驅(qū)動(dòng)器,返回一個(gè)整數(shù)(0=A,1=B,2=C等)

int setdisk(int drive) 設(shè)置要使用的驅(qū)動(dòng)器drive(0=A,1=B,2=C等),

返回可使用驅(qū)動(dòng)器總數(shù)

int mkdir(char *pathname) 建立一個(gè)新的目錄pathname,成功返回0

int rmdir(char *pathname) 刪除一個(gè)目錄pathname,成功返回0

char *mktemp(char *template) 構(gòu)造一個(gè)當(dāng)前目錄上沒有的文件名并存于template中

char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路徑,

,此函數(shù)使用DOS的PATH變量,未找到文件返回NULL

進(jìn)程函數(shù),所在函數(shù)庫(kù)為stdlib.h、process.h

void abort() 此函數(shù)通過調(diào)用具有出口代碼3的_exit寫一個(gè)終止信息于stderr,

并異常終止程序。無(wú)返回值

int exec…裝入和運(yùn)行其它程序

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

int execv( char *pathname,char *argv[])

int execve( char *pathname,char *argv[],char *envp[])

int execvp( char *pathname,char *argv[])

int execvpe(char *pathname,char *argv[],char *envp[])

exec函數(shù)族裝入并運(yùn)行程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序,出錯(cuò)返回-1

在exec函數(shù)族中,后綴l、v、p、e添加到exec后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí),函數(shù)可以利用DOS的PATH變量查找子程序文件。

l時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)固定。

v時(shí),函數(shù)中被傳遞的參數(shù)個(gè)數(shù)不固定。

e時(shí),函數(shù)傳遞指定參數(shù)envp,允許改變子進(jìn)程的環(huán)境,

無(wú)后綴e時(shí),子進(jìn)程使用當(dāng)前程序的環(huán)境。

void _exit(int status)終止當(dāng)前程序,但不清理現(xiàn)場(chǎng)

void exit(int status) 終止當(dāng)前程序,關(guān)閉所有文件,寫緩沖區(qū)的輸出(等待輸出),

并調(diào)用任何寄存器的"出口函數(shù)",無(wú)返回值

int spawn…運(yùn)行子程序

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[])

spawn函數(shù)族在mode模式下運(yùn)行子程序pathname,并將參數(shù)

arg0(arg1,arg2,argv[],envp[])傳遞給子程序.出錯(cuò)返回-1

mode為運(yùn)行模式

mode為 P_WAIT 表示在子程序運(yùn)行完后返回本程序

P_NOWAIT 表示在子程序運(yùn)行時(shí)同時(shí)運(yùn)行本程序(不可用)

P_OVERLAY表示在本程序退出后運(yùn)行子程序

在spawn函數(shù)族中,后綴l、v、p、e添加到spawn后,

所指定的函數(shù)將具有某種操作能力

有后綴 p時(shí), 函數(shù)利用DOS的PATH查找子程序文件

l時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)固定.

v時(shí), 函數(shù)傳遞的參數(shù)個(gè)數(shù)不固定.

e時(shí), 指定參數(shù)envp可以傳遞給子程序,允許改變子程序運(yùn)行環(huán)境.

當(dāng)無(wú)后綴e時(shí),子程序使用本程序的環(huán)境.

int system(char *command) 將MSDOS命令command傳遞給DOS執(zhí)行

轉(zhuǎn)換子程序,函數(shù)庫(kù)為math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串

char *gcvt(double value,int ndigit,char *buf)

將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針

char *ultoa(unsigned long value,char *string,int radix)

將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *ltoa(long value,char *string,int radix)

將長(zhǎng)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)所用基數(shù)

char *itoa(int value,char *string,int radix)

將整數(shù)value轉(zhuǎn)換成字符串存入string,radix為轉(zhuǎn)換時(shí)所用基數(shù)

double atof(char *nptr) 將字符串nptr轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

int atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整型數(shù), 并返回這個(gè)數(shù),錯(cuò)誤返回0

long atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整型數(shù),并返回這個(gè)數(shù),錯(cuò)誤返回0

double strtod(char *str,char **endptr)將字符串str轉(zhuǎn)換成雙精度數(shù),并返回這個(gè)數(shù),

long strtol(char *str,char **endptr,int base)將字符串str轉(zhuǎn)換成長(zhǎng)整型數(shù),

并返回這個(gè)數(shù),

int toascii(int c) 返回c相應(yīng)的ASCII

int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')

int _tolower(int ch) 返回ch相應(yīng)的小寫字母('a'-'z')

int toupper(int ch) 若ch是小寫字母('a'-'z')返回相應(yīng)的大寫字母('A'-'Z')

int _toupper(int ch) 返回ch相應(yīng)的大寫字母('A'-'Z')

診斷函數(shù),所在函數(shù)庫(kù)為assert.h、math.h

void assert(int test) 一個(gè)擴(kuò)展成if語(yǔ)句那樣的宏,如果test測(cè)試失敗,

就顯示一個(gè)信息并異常終止程序,無(wú)返回值

void perror(char *string) 本函數(shù)將顯示最近一次的錯(cuò)誤信息,格式如下:

字符串string:錯(cuò)誤信息

char *strerror(char *str) 本函數(shù)返回最近一次的錯(cuò)誤信息,格式如下:

字符串str:錯(cuò)誤信息

int matherr(struct exception *e)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒有必要使用)

c語(yǔ)言中math頭文件中的函數(shù)有哪些

數(shù)學(xué)函數(shù)庫(kù),一些數(shù)學(xué)計(jì)算的公式的具體實(shí)現(xiàn)是放在math.h里,具體有:

1 三角函數(shù)

double sin (double);

double cos (double);

double tan (double);

2 反三角函數(shù)

double asin (double); 結(jié)果介于[-PI/2, PI/2]

double acos (double); 結(jié)果介于[0, PI]

double atan (double); 反正切(主值), 結(jié)果介于[-PI/2, PI/2]

double atan2 (double, double); 反正切(整圓值), 結(jié)果介于[-PI/2, PI/2]

3 雙曲三角函數(shù)

double sinh (double);

double cosh (double);

double tanh (double);

4 指數(shù)與對(duì)數(shù)

double exp (double);

double sqrt (double);

double log (double); 以e為底的對(duì)數(shù)

double log10 (double);

double pow(double x, double y)//計(jì)算以x為底數(shù)的y次冪

5 取整

double ceil (double); 取上整

double floor (double); 取下整

6 絕對(duì)值

double fabs (double);

double cabs(struct complex znum) //求復(fù)數(shù)的絕對(duì)值

7 標(biāo)準(zhǔn)化浮點(diǎn)數(shù)

double frexp (double f, int *p); 標(biāo)準(zhǔn)化浮點(diǎn)數(shù), f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] )

double ldexp (double x, int p); 與frexp相反, 已知x, p求f

8 取整與取余

double modf (double, double*); 將參數(shù)的整數(shù)部分通過指針回傳, 返回小數(shù)部分

double fmod (double, double); 返回兩參數(shù)相除的余數(shù)

9其他

double hypot(double x, double y);//已知直角三角形兩個(gè)直角邊長(zhǎng)度,求斜邊長(zhǎng)度

double ldexp(double x, int exponent);//計(jì)算x*(2的exponent次冪)

double poly(double x, int degree, double coeffs [] )//計(jì)算多項(xiàng)式

nt matherr(struct exception *e)//數(shù)學(xué)錯(cuò)誤計(jì)算處理程序

source: 《C C++ Code Capsules》

C語(yǔ)言的頭函數(shù)有什么作用?包括了什么東西在里面?

頭函數(shù)在預(yù)處理里面,也就是在里面包含了很多的函數(shù)原型以及定義。

比如stdio.h中就包含printf,scanf等等函數(shù)。

不包含會(huì)報(bào)警告。

C語(yǔ)言中的頭文件有多少種都有哪些?C函數(shù)庫(kù)有哪些?

iv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_M(jìn)AX和MB_CUR_M(jìn)AX等等;

常見的函數(shù)有malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等。具體內(nèi)容可以在編譯器的包含目錄stdlib.h頭文件中打開查看。

為了方便用戶編寫程序,C語(yǔ)言為用戶開發(fā)了大量的庫(kù)函數(shù),定義在。H文件,用戶可以調(diào)用這些函數(shù)來實(shí)現(xiàn)強(qiáng)大的功能。因此,對(duì)于用戶來說,這些函數(shù)的使用是提高編程水平的關(guān)鍵。

擴(kuò)展資料:

以下內(nèi)容適用于頭文件

1.對(duì)于具有外部存儲(chǔ)類型的標(biāo)識(shí)符,可以在任何其他源程序文件中聲明后引用它們,這樣用戶就可以完全將具有外部存儲(chǔ)類型的標(biāo)識(shí)符的一些聲明放在頭文件中。

2.具體來說,頭文件可以包括用戶構(gòu)造的數(shù)據(jù)類型(例如枚舉類型)、外部變量、外部函數(shù)、常量和具有一定通用性或公共量的內(nèi)聯(lián)函數(shù)。一般的變量和函數(shù)定義不應(yīng)該放在頭文件中。

其他:

雙假設(shè)(雙x,雙y);//給定一個(gè)直角三角形的兩條邊的長(zhǎng)度,求斜邊的長(zhǎng)度。

雙ldexp(雙x,int指數(shù));//計(jì)算x*(2的指數(shù)次方)。

雙poly(Doublex,intdegree,Doublecoeffs[])//計(jì)算多項(xiàng)式。

Ntmatherr(structexception*e)//數(shù)學(xué)錯(cuò)誤計(jì)算處理程序。

C語(yǔ)言中函數(shù)的頭文件名共有多少個(gè)?分別是哪些?

C/C++頭文件一覽

C、傳統(tǒng) C++

#include assert.h //設(shè)定插入點(diǎn)

#include ctype.h //字符處理

#include errno.h //定義錯(cuò)誤碼

#include float.h //浮點(diǎn)數(shù)處理

#include fstream.h //文件輸入/輸出

#include iomanip.h //參數(shù)化輸入/輸出

#include iostream.h //數(shù)據(jù)流輸入/輸出

#include limits.h //定義各種數(shù)據(jù)類型最值常量

#include locale.h //定義本地化函數(shù)

#include math.h //定義數(shù)學(xué)函數(shù)

#include stdio.h //定義輸入/輸出函數(shù)

#include stdlib.h //定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù)

#include string.h //字符串處理

#include strstrea.h //基于數(shù)組的輸入/輸出

#include time.h //定義關(guān)于時(shí)間的函數(shù)

#include wchar.h //寬字符處理及輸入/輸出

#include wctype.h //寬字符分類

//////////////////////////////////////////////////////////////////////////

標(biāo)準(zhǔn) C++ (同上的不再注釋)

#include algorithm //STL 通用算法

#include bitset //STL 位集容器

#include cctype

#include cerrno

#include clocale

#include cmath

#include complex //復(fù)數(shù)類

#include cstdio

#include cstdlib

#include cstring

#include ctime

#include deque //STL 雙端隊(duì)列容器

#include exception //異常處理類

#include fstream

#include functional //STL 定義運(yùn)算函數(shù)(代替運(yùn)算符)

#include limits

#include list //STL 線性列表容器

#include map //STL 映射容器

#include iomanip

#include ios //基本輸入/輸出支持

#include iosfwd //輸入/輸出系統(tǒng)使用的前置聲明

#include iostream

#include istream //基本輸入流

#include ostream //基本輸出流

#include queue //STL 隊(duì)列容器

#include set //STL 集合容器

#include sstream //基于字符串的流

#include stack //STL 堆棧容器

#include stdexcept //標(biāo)準(zhǔn)異常類

#include streambuf //底層輸入/輸出支持

#include string //字符串類

#include utility //STL 通用模板類

#include vector //STL 動(dòng)態(tài)數(shù)組容器

#include cwchar

#include cwctype

using namespace std;

//////////////////////////////////////////////////////////////////////////

C99 增加

#include complex.h //復(fù)數(shù)處理

#include fenv.h //浮點(diǎn)環(huán)境

#include inttypes.h //整數(shù)格式轉(zhuǎn)換

#include stdbool.h //布爾環(huán)境

#include stdint.h //整型環(huán)境

#include tgmath.h //通用類型數(shù)學(xué)宏

c語(yǔ)言的函數(shù)頭

在一個(gè)函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個(gè)參數(shù)的次序和類型等函數(shù)原型信息,所以當(dāng)沒有專門給出函數(shù)原型說明語(yǔ)句時(shí),系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。

一個(gè)函數(shù)的原型語(yǔ)句就是其函數(shù)頭的一個(gè)拷貝,當(dāng)然要在最后加上語(yǔ)句接上結(jié)束符分號(hào)。函數(shù)原型語(yǔ)句與函數(shù)頭也有細(xì)微的差別,在函數(shù)原型語(yǔ)句中,其參數(shù)表中的每個(gè)參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對(duì)應(yīng)的參數(shù)名不同。

全文如下:

一)、定義格式

類型名 函數(shù)名 ([參數(shù)表]) 函數(shù)體

類型名為系統(tǒng)或用戶已定義的一種數(shù)據(jù)類型,它是函數(shù)執(zhí)行過程中通過return語(yǔ)句要求返回的值的類型,又稱為該函數(shù)的類型。當(dāng)一個(gè)函數(shù)不需要通過return語(yǔ)句返回一個(gè)值時(shí),稱為無(wú)返回值函數(shù)或無(wú)類型函數(shù),此時(shí)需要使用保留字void作為類型名。當(dāng)類型名為int時(shí),可以省略不寫,但為了清楚起見,還是寫明為好。

函數(shù)名是用戶為函數(shù)所起的名字,它是一個(gè)標(biāo)識(shí)符,應(yīng)符合C++標(biāo)識(shí)符的一般命名規(guī)則,用戶通過使用這個(gè)函數(shù)名和實(shí)參表可以調(diào)用該函數(shù)。

參數(shù)表又稱形式參數(shù)表,它包含有任意多個(gè)(含0個(gè),即沒有)參數(shù)說明項(xiàng),當(dāng)多于一個(gè)時(shí)其前后兩個(gè)參數(shù)說明項(xiàng)之間必須用逗號(hào)分開。每個(gè)參數(shù)說明項(xiàng)由一種已定義的數(shù)據(jù)類型和一個(gè)變量標(biāo)識(shí)符組成,該變量標(biāo)識(shí)符成為該函數(shù)的形式參數(shù),簡(jiǎn)稱形參,形參前面給出的數(shù)據(jù)類型稱為該形參的類型。一個(gè)函數(shù)定義中的參數(shù)表可以被省略,表明該函數(shù)為無(wú)參函數(shù),若參數(shù)表用void取代,則也表明是無(wú)參函數(shù),若參數(shù)表不為空,同時(shí)又不是保留字void,則稱為帶參函數(shù)。

函數(shù)體是一條復(fù)合語(yǔ)句,它以左花括號(hào)開始,到右花括號(hào)結(jié)束,中間為一條或若干條C++語(yǔ)句。

在一個(gè)函數(shù)的參數(shù)表中,每個(gè)參數(shù)可以為任一種數(shù)據(jù)類型,包括普通類型、指針類型、數(shù)組類型、引用類型等,一個(gè)函數(shù)的返回值可以是除數(shù)組類型之外的任何類型,包括普通類型、指針類型和引用類型等。另外,當(dāng)不需要返回值時(shí),應(yīng)把函數(shù)定義為void類型。

二)、定義格式舉例

(1) void f1() {...}

(2) void f2(int x) {...}

(3) int f3(int x,int* p) {...}

(4) char* f4(char a[]){...}

(5) int f5(int x,double d) {...}

(6) int f6(int b[10], int n) {...}

(7) void f7(float c[][N], int m, float max) {...}

(8) bool f8(ElemType* bt, ElemType item) {...}

在第一條函數(shù)定義中,函數(shù)名為f1,函數(shù)類型為void,參數(shù)表為空,此函數(shù)是一個(gè)無(wú)參無(wú)類型函數(shù)。若在f1后面的圓括號(hào)內(nèi)寫入保留字void,也表示為無(wú)參函數(shù)。

在第二條函數(shù)定義中,僅帶有一個(gè)類型為int的形參變量x,該函數(shù)沒有返回值。

在第三條函數(shù)定義中,函數(shù)名為f3,函數(shù)類型為int,函數(shù)參數(shù)為x和p,其中x為int型普通參數(shù),p為int*型指針參數(shù)。

在第四條函數(shù)定義中,函數(shù)名為f4,函數(shù)類型為char*,即字符指針類型,參數(shù)表中包含一個(gè)一維字符數(shù)組參數(shù)。注意:在定義任何類型的一維數(shù)組參數(shù)時(shí),不需要給出維的尺寸,當(dāng)然給出也是允許的,但沒有任何意義。

在第五條函數(shù)定義中,函數(shù)名為f5,返回類型為int,該函數(shù)帶有兩個(gè)形參,一個(gè)為 整型引用變量x,另一個(gè)為雙精度變量d。

在第六條函數(shù)定義中,函數(shù)名為f6,函數(shù)類型為int,即整型引用,該函數(shù)帶有兩個(gè)形參,一個(gè)是整型數(shù)組b,另一個(gè)是整型變量n。在這里定義形參數(shù)組b所給出的維的尺寸10可以被省略。

在第七條函數(shù)定義中,函數(shù)名為f7,無(wú)函數(shù)類型,參數(shù)表中包含三個(gè)參數(shù),一個(gè)為二維單精度型數(shù)組c,第二個(gè)為整型變量m,第三個(gè)為單精度引用變量max。注意:當(dāng)定義一個(gè)二維數(shù)組參數(shù)時(shí),第二維的尺寸必須給出,并且必須是一個(gè)常量表達(dá)式,第一維尺寸可給出也可不給出,其作用相同。

在第八條函數(shù)定義中,函數(shù)名為f8,返回類型為bool,即邏輯類型,該函數(shù)帶有兩個(gè)參數(shù),一個(gè)為形參bt,它為ElemType的指針引用類型,另一個(gè)為形參item,它是ElemType的引用類型,其中ElemType為一種用戶定義的類型或是通過typedef語(yǔ)句定義的一個(gè)類型的別名。

三)、有關(guān)函數(shù)定義的幾點(diǎn)說明

1. 函數(shù)原型語(yǔ)句

在一個(gè)函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個(gè)參數(shù)的次序和類型等函數(shù)原型信息,所以當(dāng)沒有專門給出函數(shù)原型說明語(yǔ)句時(shí),系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。

一個(gè)函數(shù)必須先定義或聲明而后才能被調(diào)用,否則編譯程序無(wú)法判斷該調(diào)用的正確性。一個(gè)函數(shù)的聲明是通過使用一條函數(shù)原型語(yǔ)句實(shí)現(xiàn)的,當(dāng)然使用多條相同的原型語(yǔ)句聲明同一個(gè)函數(shù)雖然多余但也是允許的,編譯時(shí)不會(huì)出現(xiàn)錯(cuò)誤。

在一個(gè)完整的程序中,函數(shù)的定義和函數(shù)的調(diào)用可以在同一個(gè)程序文件中,也可以處在不同的程序文件中,但必須確保函數(shù)原型語(yǔ)句與函數(shù)調(diào)用表達(dá)式出現(xiàn)在同一個(gè)文件中,并且函數(shù)原型語(yǔ)句出現(xiàn)在前,函數(shù)的調(diào)用出現(xiàn)在后。

通常把一個(gè)程序中用戶定義的所有函數(shù)的原型語(yǔ)句組織在一起,構(gòu)成一個(gè)頭文件,讓該程序中所含的每個(gè)程序文件的開始(即所有函數(shù)定義之前)包含這個(gè)頭文件(通過#include命令實(shí)現(xiàn)),這樣不管每個(gè)函數(shù)的定義在哪里出現(xiàn),都能夠確保函數(shù)先聲明后使用(即調(diào)用)這一原則的實(shí)現(xiàn)。

一個(gè)函數(shù)的原型語(yǔ)句就是其函數(shù)頭的一個(gè)拷貝,當(dāng)然要在最后加上語(yǔ)句接上結(jié)束符分號(hào)。函數(shù)原型語(yǔ)句與函數(shù)頭也有細(xì)微的差別,在函數(shù)原型語(yǔ)句中,其參數(shù)表中的每個(gè)參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對(duì)應(yīng)的參數(shù)名不同。

2. 常量形參

在定義一個(gè)函數(shù)時(shí),若只允許函數(shù)體訪問一個(gè)形參的值,不允許修改它的值,則應(yīng)把該形參說明為常量,這只要在形參說明的前面加上const保留字進(jìn)行修飾即可。如:

void f9(const int x, const char y);

void f10(const char* p, char key);

在函數(shù)f9的函數(shù)體中只允許使用x和y的值,不允許修改它們的值。在函數(shù)f10的函數(shù)體中只允許使用p所指向的字符對(duì)象或字符數(shù)組對(duì)象的值,不允許修改它們的值,但在函數(shù)體中既允許使用也允許修改形參key的值。

3. 缺省參數(shù)

在一個(gè)函數(shù)定義中,可根據(jù)需要對(duì)參數(shù)表末尾的一個(gè)或連續(xù)若干個(gè)參數(shù)給出缺省值,當(dāng)調(diào)用這個(gè)函數(shù)時(shí),若實(shí)參表中沒有給出對(duì)應(yīng)的實(shí)參,則形參將采用這個(gè)缺省值。如:

void f11(int x, int y=0) {...}

int f12(int a[], char op='+', int k=10) {...}

函數(shù)f11的定義帶有兩個(gè)參數(shù),分別為整型變量x和y,并且y帶有缺省值0,若調(diào)用該函數(shù)的表達(dá)式為f11(a,b),將把a(bǔ)的值賦給x,把b的值賦給y,接著執(zhí)行函數(shù)體;若調(diào)用該函數(shù)的表達(dá)式為f11(a+b),則也是正確的調(diào)用格式,它將把a(bǔ)+b的值賦給x,因y沒有對(duì)應(yīng)的實(shí)參,將采用缺省值0,參數(shù)傳送后接著執(zhí)行函數(shù)體。

函數(shù)f12的定義帶有三個(gè)參數(shù),其中后兩個(gè)帶有缺省值,所以調(diào)用它的函數(shù)格式有三種,一種只帶一個(gè)實(shí)參,用于向形參a傳送數(shù)據(jù),后兩個(gè)形參采用缺省值,第二種帶有兩個(gè)實(shí)參,用于分別向形參a和op傳送數(shù)據(jù),第三個(gè)形參采用缺省值,第三種帶有三個(gè)實(shí)參,分別用于傳送給三個(gè)形參。

若一個(gè)函數(shù)帶有專門的函數(shù)原型語(yǔ)句,則形參的缺省值只能在該函數(shù)原型語(yǔ)句中給出,不允許在函數(shù)頭中給出。如對(duì)于上述的f11和f12函數(shù),其對(duì)應(yīng)的函數(shù)原型語(yǔ)句分別為:

void f11(int x, int y=0);

int f12(int a[], char op='+', int k=10);

函數(shù)定義應(yīng)分別改寫為:

void f11(int x, int y) {...}

int f12(int a[], char op, int k) {...}

4. 數(shù)組參數(shù)

在函數(shù)定義中的每個(gè)數(shù)組參數(shù)實(shí)際上是指向元素類型的指針參數(shù)。對(duì)于一維數(shù)組參數(shù)說明:

數(shù)據(jù)類型 數(shù)組名[]

它與下面的指針參數(shù)說明完全等價(jià):

數(shù)據(jù)類型 *指針變量名

其中指針變量名就是數(shù)組參數(shù)說明中的數(shù)組名。如對(duì)于f12函數(shù)定義中的數(shù)組參數(shù)說明int a[],等價(jià)于指針參數(shù)說明int* a。也就是說,數(shù)組參數(shù)說明中的數(shù)組名a是一個(gè)類型為int*的形參。注意:在變量定義語(yǔ)句中定義的數(shù)組,其數(shù)組名代表的是一個(gè)數(shù)組,它的值是指向第一個(gè)元素的指針常量,這與數(shù)組形參的含義有區(qū)別。

對(duì)于二維數(shù)組參數(shù)說明:

數(shù)據(jù)類型 參數(shù)名[][第二維尺寸]

它與下面的指針參數(shù)說明完全等價(jià):

數(shù)據(jù)類型 (*參數(shù)名)[第二維尺寸]

如對(duì)于f7函數(shù)定義中的二維數(shù)組參數(shù)說明float c[][N],等價(jià)于指針參數(shù)說明float(*c)[N]。

5. 函數(shù)類型

當(dāng)調(diào)用一個(gè)函數(shù)時(shí)就執(zhí)行一遍循環(huán)體,對(duì)于類型為非void的函數(shù),函數(shù)體中至少必須帶有一條return語(yǔ)句,并且每條return語(yǔ)句必須帶有一個(gè)表達(dá)式,當(dāng)執(zhí)行到任一條return語(yǔ)句時(shí),將計(jì)算出它的表達(dá)式的值,結(jié)束整個(gè)函數(shù)的調(diào)用過程,把這個(gè)值作為所求的函數(shù)值帶回到調(diào)用位置,參與相應(yīng)的運(yùn)算;對(duì)于類型為void的函數(shù),它不需要返回任何函數(shù)值,所以在函數(shù)體中既可以使用return語(yǔ)句,也可以不使用,對(duì)于使用的每條return語(yǔ)句不允許也不需要帶有表達(dá)式,當(dāng)執(zhí)行到任一條return語(yǔ)句時(shí),或執(zhí)行到函數(shù)體最后結(jié)束位置時(shí),將結(jié)束函數(shù)的調(diào)用過程,返回到調(diào)用位置向下繼續(xù)執(zhí)行。

6. 內(nèi)聯(lián)函數(shù)

當(dāng)在一個(gè)函數(shù)的定義或聲明前加上關(guān)鍵字inline則就把該函數(shù)聲明為內(nèi)聯(lián)函數(shù)。計(jì)算機(jī)在執(zhí)行一般函數(shù)的調(diào)用時(shí),無(wú)論該函數(shù)多么簡(jiǎn)單或復(fù)雜,都要經(jīng)過參數(shù)傳遞、執(zhí)行函數(shù)體和返回等操作。若把一個(gè)函數(shù)聲明為內(nèi)聯(lián)函數(shù)后,在程序編譯階段系統(tǒng)就有可能把所有調(diào)用該函數(shù)的地方都直接替換為該函數(shù)的執(zhí)行代碼,由此省去函數(shù)調(diào)用時(shí)的參數(shù)傳遞和返回操作,從而加快整個(gè)程序的執(zhí)行速度。通??砂岩恍┫鄬?duì)簡(jiǎn)單的函數(shù)聲明為內(nèi)聯(lián)函數(shù),對(duì)于較復(fù)雜的函數(shù)則不應(yīng)聲明為內(nèi)聯(lián)函數(shù)。從用戶的角度看,調(diào)用內(nèi)聯(lián)函數(shù)和一般函數(shù)沒有任何區(qū)別。下面就是一個(gè)內(nèi)聯(lián)函數(shù)定義的例子,它返回形參值的立方。

inline int cube(int n)

{

return n*n*n;

}


本文標(biāo)題:c語(yǔ)言中不同的頭函數(shù),c語(yǔ)言頭函數(shù)什么意思
網(wǎng)站鏈接:http://weahome.cn/article/hecggj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部