函數(shù)1。absread()讀磁盤絕對扇區(qū)函數(shù)原形:int absread(int drive,int num,int sectnum,void *buf)功能:從drive指定的驅(qū)動器磁盤上,sectnum指定的邏輯扇區(qū)號開始讀取(通過DOS中斷0x25讀取)num個(最多64K個)扇區(qū)的內(nèi)容,儲存于buf所指的緩沖區(qū)中。參數(shù):drive=0對應(yīng)A盤,drive=1對應(yīng)B盤。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)2。abswrite()寫磁盤絕對扇區(qū)函數(shù)原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驅(qū)動器)、1(B驅(qū)動器)、 nsects=要寫的扇區(qū)數(shù)(最多64K個); lsect=起始邏輯扇區(qū)號; buffer=要寫入數(shù)據(jù)的內(nèi)存起始地址。功能:將指定內(nèi)容寫入(調(diào)用DOS中斷0x26)磁盤上的指定扇區(qū),即使寫入的地方是磁盤的邏輯結(jié)構(gòu)、文件、FAT表和目錄結(jié)構(gòu)所在的扇區(qū),也照常進行。返回值:0:成功;-1:失敗。頭文件:dos.h函數(shù)3。atof()將字符串轉(zhuǎn)換成浮點數(shù)的函數(shù)原形:double atof(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成double類型。 s格式為:符號 數(shù)字.數(shù)字 E符號 數(shù)字返回值:字符串的轉(zhuǎn)換值。頭文件:math.h、stdlib.h函數(shù)4。atoi()將字符串轉(zhuǎn)換成整型數(shù)的函數(shù)原形:int atoi(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成int類型。 s格式為:符號 數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)5。atol()將字符串轉(zhuǎn)換成長整型數(shù)的函數(shù)原形:long atol(const char *s)功能:把s所指向的字符串轉(zhuǎn)換成long int類型。 s格式為:符號 數(shù)字返回值:字符串的轉(zhuǎn)換值。若出錯則返回0。頭文件:stdlib.h函數(shù)6。bcd()把一個數(shù)轉(zhuǎn)換成對應(yīng)的BCD碼的函數(shù)原形:bcd bcd(int x) bcd bcd(double x) bcd bcd(double x,int decimals)注意:BCD碼的精度可達17位。參數(shù)decimals是可選的,用來指定轉(zhuǎn)換后小數(shù)點后的位數(shù)。頭文件:bcd.h函數(shù)7。bdos()原形∶int bdos(int fnum,unsigned dx,unsigned al) 其中fnum是系統(tǒng)調(diào)用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;功能∶DOS系統(tǒng)調(diào)用(INT21H)返回值∶AX中的值函數(shù)8。biosdisk()調(diào)用BIOS磁盤驅(qū)動程序函數(shù)原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)功能:使用中斷0x13,直接調(diào)用BIOS進行磁盤操作參數(shù):(1)cmd: 2-數(shù)據(jù)以每扇區(qū)512字節(jié)的格式讀入buffer,起始扇區(qū)由head、track和sector定,扇區(qū)數(shù)由nsects定。 3-將buffer中的數(shù)據(jù)按每扇區(qū)512字節(jié)寫入磁盤。 4-對扇區(qū)進行數(shù)據(jù)校驗。 6-格式化一個磁盤并對化扇區(qū)設(shè)置化標志。 8-返回當(dāng)前驅(qū)動器參數(shù)在buffer的前4個字節(jié)中。 10-長讀,每扇區(qū)讀入512字節(jié)加上額外的4個字節(jié)。 11-長寫,每扇區(qū)寫入512字節(jié)加上額外的4個字節(jié)。 (2)drive:0-第一個軟驅(qū);1-第二個軟驅(qū);0x80-第一個硬驅(qū) (3)head:磁頭 (4)track:磁道 (5)sector:扇區(qū) (6)nsects:扇區(qū)數(shù) (7)buffer:數(shù)據(jù)緩沖區(qū),定義為unsigned char buffer[];返回值:0x00-操作成功 0x01-錯誤命令 0x03-企圖寫具有寫保護的磁盤 0x07-驅(qū)動器參數(shù)設(shè)置錯誤 0x10-磁盤讀/CRC/ECC錯誤頭文件:bios.h注:對于硬盤主引導(dǎo)記錄扇區(qū)head=0,track=0,sector=1函數(shù)9。biosprint()調(diào)用BIOS打印機I/O接口的函數(shù)原形:int biosprint(int cmd,int abyte,int port)功能:通過BIOS中斷0x17在由參數(shù)port指定的打印機上完成各種打印機功能。 port=0(LPT1) =1(LPT2); cmd=0(打印字符abyte) 1(初始化打印機端口) 2(讀打印機狀態(tài)); abyte=0-255;返回值:打印機狀態(tài) 位0(設(shè)備超時);位3(I/O出錯);位4(打印機已選擇);位5(沒紙);位6(打印機確認);位7(不忙)頭文件:bios.h函數(shù)10。calloc()分配內(nèi)存函數(shù)原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一塊內(nèi)存,將該內(nèi)存的內(nèi)容全部清0。返回值:返回指向新分配內(nèi)存的指針??臻g不夠則返回NULL。頭文件:stdlib.h、calloc.h函數(shù)11。ceil()原形∶double ceil(double num)功能∶求不小于num的最小雙精度整數(shù)頭文件∶math.h函數(shù)12。cgets()讀字符串函數(shù)原形:char *cgets(char *str)功能:從控制臺讀入一個字符串,并將該字符串(和字符串長度)存入有str所指向的地址中。注意:在調(diào)用cgets之前,必須將要讀入的字符串最大長度存入str[0]中,返回時str[1]被設(shè)置為實際讀入的字符數(shù)。實際字符串內(nèi)容從str[2]開始,以空字符(\0)結(jié)尾。返回值:指向str[2]的指針。頭文件:conio.h函數(shù)13。chdir()改變當(dāng)前目錄的函數(shù)原形:int chdir(const char *path)功能:把由path指定的目錄改為當(dāng)前目錄。path參數(shù)中可以指定驅(qū)動器號,如"a:\\ddd", 但只是改變該驅(qū)動器上的當(dāng)前目錄,對當(dāng)前活動驅(qū)動器上的當(dāng)前目錄無影響。返回值:0(成功);-1(失敗)頭文件:dir.h函數(shù)14。_chmod()改變文件存取權(quán)限的函數(shù)原形:int _chmod(const char *path,int func[,int attrib])功能:讀取(func=0時)或設(shè)置(func=1時)DOS文件屬性。 attrib=FA_RDONLY 只讀 attrib=FA_HIDDEN 隱藏文件 attrib=FA_SYSTEM 系統(tǒng)文件 attrib=FA_LABLE 卷標 attrib=FA_DIREC 目錄 attrib=FA_ARCH 檔案 返回值:失敗時返回-1。成功時返回文件的屬性字節(jié),如果 返回值FA_RDONLY 不等于0,則文件是只讀文件;......頭文件:io.h、dos.h函數(shù)15。chmod()改變文件存取權(quán)限的函數(shù)原形:int chmod(const char *path,int amode)功能:根據(jù)amode的值,設(shè)置由path所指文件的存取權(quán)限。 amode的值 存取權(quán)限 S_IWRITE 允許寫 S_IREAD 允許讀(只讀) S_IREAD|S_IWRITE 可讀可寫 返回值:0(成功);-1(失敗)頭文件:io.h、sys\stat.h函數(shù)16。clock()原形∶long clock(void)功能∶測得從程序開始到調(diào)用處處理機所用的時間頭文件∶time.h函數(shù)17。close()關(guān)閉文件函數(shù)原形:int close(int handle)功能:關(guān)閉由文件句柄所指向的文件,句柄是調(diào)用_creat、creat、creatnew、creattemp、dup、dup2、_open或open時得到的。該函數(shù)并不在文件末尾寫一個Ctrl-Z字符,如果想用該字符結(jié)束文件,必須顯式地給出該字符。返回值:0(成功);-1(失敗)頭文件:io.h函數(shù)18。closegraph()關(guān)閉圖形函數(shù)原形:void far closegraph(void)功能:釋放圖形系統(tǒng)分配的所有內(nèi)存,將屏幕恢復(fù)到調(diào)用initgraph之前的模式。頭文件:graphics.h函數(shù)19。cos()原形∶double cos(double arg)功能∶計算arg(弧度)的余弦值頭文件∶math.h函數(shù)20。ctrlbrk()設(shè)置ctrl-break處理程序的函數(shù)原形:void ctrlbrk(int(*handle)(void))功能:修改中斷向量0x23,使用新的ctrl-break中斷處理函數(shù)。用法:ctrlbrk(函數(shù)名); 先定義函數(shù):int 函數(shù)名(void){...}頭文件:dos.h函數(shù)21。delay()暫停函數(shù)原形:void delay(unsigned milliseconds)功能:暫停當(dāng)前所執(zhí)行的程序milliseconds毫秒。頭文件:dos.h函數(shù)22。disable()屏蔽中斷的宏原形:void disble(void)功能:屏蔽中斷,只允許從外部設(shè)備來的不可屏蔽中斷(NMI)。頭文件:dos.h函數(shù)23。enable()開硬件中斷的宏原形:void enable(void)功能:開放中斷,允許接受任何設(shè)備產(chǎn)生的中斷。頭文件:dos.h函數(shù)24。exec()加載并運行其它程序的函數(shù)族execl(),execle(),execlp(),execlpe(),execv(),execve(),execvp(),execvpe()原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)int execv(char *path,char *argv[])int execve(char *path,char *argv[],char **env)int execvp(char *path,char *argv[])int execvpe(char *path,char *argv[],char **env) 其中,path是調(diào)用的子程序的文件名,在exec后面的后綴具有某種功能: p表示函數(shù)能夠在由DOS環(huán)境變量PATH的目錄中搜索子進程文件,如果path中未指明文件所在目錄,函數(shù)將首先在當(dāng)前目錄中找,然后在DOS環(huán)境變量指定的目錄中找。 l表示參數(shù)指針(arg0,...,argn)按單獨參數(shù)傳送。當(dāng)預(yù)先知道要傳送的參數(shù)個數(shù)時,通常用帶后綴l的函數(shù)。 v表示參數(shù)指針(arg0,...,argn)按指針數(shù)組傳送。當(dāng)要傳送的參數(shù)可變時,使用帶后綴v的函數(shù)。 e表示參數(shù)env可以傳送到子進程,該函數(shù)可用來修改子進程的環(huán)境。若無e后綴,子進程將繼承父進程的環(huán)境。注意:arg0+...+argn,或arg[0]+...+arg[n]的總長度必需小于128字節(jié)。當(dāng)調(diào)用exec函數(shù)時,原先已經(jīng)打開的文件在子進程中仍然是打開的。功能:加載并運行其它程序,調(diào)用時必須有足夠的內(nèi)存空間用于加載和執(zhí)行子程序,子程序?qū)⒏采w父程序。頭文件:process.h 函數(shù)25。farcalloc()從遠堆中分配內(nèi)存的函數(shù)原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)功能:從遠堆中為包含nunits個元素的數(shù)組分配內(nèi)存,每一區(qū)unitsz字節(jié)長。用法:fptr=farcalloc(數(shù)目,sizeof(char)); 先定義:char far *fptr;注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配塊的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)26。farfree()從遠堆中釋放一塊已分配內(nèi)存的函數(shù)原形:void farfree(void far *block)頭文件:alloc.h函數(shù)27。farmalloc()從遠堆中分配內(nèi)存的函數(shù)原形:void far *farmalloc(unsigned long nbytes)使用方式:fptr=farmalloc(字節(jié)數(shù)); 先定義char far *fptr;功能:從遠堆中分配長nbytes字節(jié)的內(nèi)存。注意:所有可用RAM能被分配;大于64K的塊能被分配;用遠指針存取該塊。微模式不能用。返回值:返回指向新分配內(nèi)存的指針,若內(nèi)存不夠,則返回NULL。頭文件:alloc.h函數(shù)28。farrealloc()調(diào)整遠堆中已分配塊的函數(shù)原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)返回值:返回調(diào)整后的新內(nèi)存地址。若不能重新分配,則返回NULL。頭文件:alloc.h函數(shù)29。fclose()關(guān)閉一個流函數(shù)原形:int fclose(FILE *stream)使用方式:fclose(文件指針名);其中文件指針名=fopen();功能:關(guān)閉指定的流,關(guān)閉前清除所有與stream相聯(lián)的緩沖區(qū),釋放系統(tǒng)分配的緩沖區(qū),但由setbuf設(shè)置的緩沖區(qū)不能自動釋放。返回值:0(成功);EOF(失敗)頭文件:stdio.h函數(shù)30。fcloseall()關(guān)閉打開的流的函數(shù)原形:int fcloseall(void)功能:關(guān)閉所有打開的流,由stdin、stdout、stdprn、stderr和stdaux設(shè)置的流除外。返回值:關(guān)閉流的總數(shù)。如果發(fā)現(xiàn)錯誤則返回EOF。頭文件:stdio.h 函數(shù)31。feof()檢查文件是否結(jié)束的函數(shù)原形∶int feof(FILE *fp)返回值∶文件結(jié)束返回非0值,否則返回0。頭文件∶stdio.h函數(shù)32。fgets()從流中讀取一字符串的函數(shù)原形:char *fgets(char s[],int n,FILE *stream)使用格式:fgets(字符串指針,字符個數(shù),文件指針)功能:從輸入流stream中讀入字符存到s串中。當(dāng)讀了n-1個字符或遇到換行符時,函數(shù)停止讀過程。fgets在s串尾保留換行字符。讀入的最后一個字符后面加一個空字符。返回值:成功時返回字符串參數(shù)s,出錯或遇到文件結(jié)束時,返回NULL。頭文件:stdio.h函數(shù)33。findfirst()函數(shù)和findnext()函數(shù)調(diào)用方式:整形數(shù)=findfirst(文件名,結(jié)構(gòu)變量名,屬性常數(shù)組合(如0x26));其中定義struct ffblk 結(jié)構(gòu)變量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer) char *path;//要檢索的文件名 struct ffblk { char ff_reserved[21]; char ff_attrib;//被檢索的文件屬性 unsigned ff_ftime;//最后修改的時間 //(0-4位:秒數(shù)/2;5-10位:分數(shù);11-15位:小時數(shù)) unsigned ff_fdate;//最后修改的日期 //(0-4位:日;5-8位:月;9-15位:年減1980) long ff_fsize;//文件大小 char ff_name[13];//組名 }*buffer; int attr;//要檢索的文件屬性功能:檢索由path和attr指定的文件,把結(jié)果返回到buffer。findfirst返回關(guān)于第一個指定文件的信息,findnext繼續(xù)檢索。返回值:0(檢索成功),-1(沒有找到指定的文件)屬性常數(shù): FA_NORMAL(0x00) 含意:Normal file, no attributes FA_RDONLY(0x01) 含意:只讀 FA_HIDDEN(0x02) 含意:隱含文件 FA_SYSTEM(0x04) 含意:系統(tǒng)文件 FA_LABEL(0x08) 含意:卷標 FA_DIREC(0x10) 含意:子目錄 FA_ARCH(0x20) 含意:修改的文件Archive頭文件:dir.h(dos.h)函數(shù)34。floodfill()填充區(qū)域的函數(shù)原形:void far floodfill(int x,int y,int border)功能:在圖形設(shè)備上用顏色border圍起來的區(qū)域?qū)⒂卯?dāng)前填充顏色填充。(x,y)是待填充區(qū)域的起點,若起點在封閉區(qū)域內(nèi),則區(qū)域內(nèi)被填充;若起點在封閉區(qū)域外,則區(qū)域外被填充。頭文件:graphics.h函數(shù)35。floor()原形∶double floor(double num)功能∶求不大于num的最大雙精度整數(shù)頭文件∶math.h函數(shù)36。fnmerge()建立文件路徑函數(shù)原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:\dir\name.ext,放在path頭文件:dir.h函數(shù)37。fnsplit()分解完整的路徑名函數(shù)原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路徑path分成4個部分存放。 其中drive中有冒號;dir中有開始和結(jié)尾的反斜杠;ext包括開始圓點返回值:如果有擴展名,則 返回值EXTENSION!=0 如果有文件名,則 返回值FILENAME!=0 如果有目錄名,則 返回值DIRECTORY!=0 如果有驅(qū)動器號,則返回值DIRVE!=0頭文件:dir.h 函數(shù)38。fopen()打開一個流函數(shù)原形:FILE *fopen(const char *filename,const char *mode)功能:打開用filename指定的文件,并使其與一個流相聯(lián)。使用方式:文件指針名=fopen("文件名","處理方式") ”處理方式”?。? "rt" 打開一個文本文件,只能讀。 "wt" 生成一個文本文件,只能寫。若文件存在則被重寫。 "at" 打開一個文本文件,只能在文件尾部添加。 "rb" 打開一個二進制文件,只能讀。 "wb" 生成一個二進制文件,只能寫。 "ab" 打開一個二進制文件,只能在文件尾部添加。 "rt+" 打開一個文本文件,可讀可寫。 "wt+" 生成一個文本文件,可讀可寫。 "at+" 打開一個文本文件,可讀可添加。 "rb+" 打開一個二進制文件,可讀可寫。 "wb+" 生成一個二進制文件,可讀可寫。 "ab+" 打開一個二進制文件,可讀可添加。返回值:指明流的指針(成功時)或NULL(失敗時)注:需先定義 FILE *文件指針名; "文件名"若用 argv[1]代替,則可使用命令行形式指定文件名函數(shù)39。FP_OFF()獲取遠地址偏移量的宏原形:unsigned FP_OFF(void far *p)功能:取得和設(shè)置遠指針*p的偏移量返回值:偏移量頭文件:dos.h 函數(shù)40。fprintf()傳送輸出到一個流中的函數(shù)原形:int fprintf(FILE *stream,const char *format[,argument,...])功能:①向文件指針指向的文件輸出ASCⅡ代碼 ②向顯示器輸出錯誤信息 使用形式: ①fprintf(文件指針,"輸出格式",輸出項系列); ②fprintf(stderr,"錯誤信息");使用實例:fprintf(stream,"%d %c %f",i,c,f); 其中定義FILE *stream; int i; char c; float f;返回值:成功則返回輸出的字節(jié)數(shù),錯誤則返回EOF。頭文件:stdio.h函數(shù)41。FP_SEG()獲取遠地址段值的宏原形:unsigned FP_SEG(void far *p)功能:取得和設(shè)置遠指針*p段地址值返回值:段地址值頭文件:dos.hfree()釋放已分配內(nèi)存的函數(shù)原形:void free(void *block)功能:釋放由calloc、malloc、realloc函數(shù)調(diào)用所分配的內(nèi)存。頭文件:stdlib.h、alloc.h函數(shù)42。fscanf()格式化輸入函數(shù)原形:int fscanf(FILE *stream,const char *format[,address,...])功能:從一個流中掃描輸入字段,一次掃描一個字符,每個輸入字段根據(jù)format所指格式指示符格式化后,把輸入字段存在format后面由地址參數(shù)給出的位置上。使用格式:fscanf(文件指針,"輸入格式",輸入項系列);使用實例:fscanf(fp,"%d",b); 從fp指向的文件中讀取十進制整數(shù) (ASCⅡ形式)賦予變量b注:當(dāng)文件指針是stdin時,與scanf功能完全相同頭文件:stdio.h函數(shù)43。fseek()移動文件指針函數(shù)原形:int fseek(FILE *stream,long offset,int whence)作用:強制一個文件的位置指針指向某個特定的位置(甚至超出文件的尾部)。使用格式:fseek(*文件指針,偏移(長整型),起點) 定義 FILE *文件指針名; "起點"取值: 0或SEEK_SET(表示文件開頭) 1或SEEK_CUR(表示當(dāng)前位置) 2或SEEK_END(表示文件尾端)返回值:0表示成功,非0值表示失敗頭文件:stdio.h函數(shù)44。fwrite()把參數(shù)寫入流中的函數(shù)原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)功能:附加n個數(shù)據(jù)項(每個數(shù)據(jù)項長度為size個字節(jié))到指定的輸出文件后,數(shù)據(jù)從ptr處開始添加。ptr是指向任意對象的指針。返回值:調(diào)用成功時返回實際寫的數(shù)據(jù)項數(shù),出錯時返回一短整形數(shù)值。頭文件:stdio.h例:fwrite(s,sizeof(s),1,stream); 其中s是一結(jié)構(gòu)變量,stream=fopen();函數(shù)45。gcvt()把雙精度數(shù)轉(zhuǎn)化成字符串的函數(shù)原形∶char*gcvt(value,ndigit,buf) 其中∶double value是待轉(zhuǎn)化數(shù) int ndigit是轉(zhuǎn)化長度 char *buf保存轉(zhuǎn)化后的地址頭文件∶stdlib.h函數(shù)46。geninterrupt()執(zhí)行中斷函數(shù)原形:void geninterrupt(int n)調(diào)用方式:geninterrupt(軟中斷號)功能:產(chǎn)生一個8086軟中斷注:需先向寄存器傳遞入口信息(用偽變量) 例如 偽變量=要賦的值(入口信息); 調(diào)用geninterrupt()函數(shù)后得接受出口信息 例如 變量名=偽變量偽變量∶Turbo C 允許使用偽變量直接訪問相應(yīng)的8086寄存器。偽變量的類型有兩種。 ① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI ② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH函數(shù)47。getc()從流中取字符的宏原形:int getc(FILE *stream)功能:返回輸入流stream中一個字符,移動文件指針使之指向下一個字符。使用格式:字符變量=getc(文件指針) (正常情況下讀取到代碼值,讀到文件尾或出錯時返回EOF)注:需定義 char 字符變量;FILE *文件指針;頭文件:stdio.h函數(shù)48。getch()從鍵盤無回顯地讀取一字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASCⅡ 碼)立刻賦給字符型變量調(diào)用方式:字符形變量=getch()注:需先定義 char 字符形變量;頭文件:conio.h函數(shù)49。getchar()從stdin流中讀取一個字符的函數(shù)功能:將鍵盤上輸入的單個字符的值(ASCⅡ 碼)回車后賦給字符型變量調(diào)用方式:字符型變量=getchar()注:需先定義 char 字符型變量;頭文件:stdio.h函數(shù)50。getcurdir()讀取指定驅(qū)動器的當(dāng)前目錄的函數(shù)原形:int getcurdir(int drive,char directory) drive=0(缺省);1(A驅(qū)動器);... directory用來存放目錄名,不包括驅(qū)動器名,不以反斜杠開始。返回值:0(調(diào)用成功);1(出錯)頭文件:dir.h函數(shù)61。getcwd()讀取當(dāng)前目錄的函數(shù)原形:char *getcwd(char *buf,int buflen)功能:讀取當(dāng)前目錄的完整路徑名(包括驅(qū)動器名),最長為buflen個字節(jié),存放在buf中。如果buf為NULL,函數(shù)將分配一個buflen字節(jié)長的緩沖區(qū),以后可將本函數(shù)的返回值作為free函數(shù)的參數(shù)來釋放該緩沖區(qū)。返回值:若buf非空,調(diào)用成功返回buf,出錯返回NULL;若buf為NULL,返回指向已經(jīng)分配的內(nèi)存緩沖區(qū)地址。頭文件:dir.h函數(shù)62。getdate()讀取系統(tǒng)日期函數(shù)原形:void getdate(pdate) struct date { int da_year; int da_day; int da_mon; }; struct date *pdate;頭文件:dos.h函數(shù)63。getdfree()讀取磁盤空閑空間的函數(shù)原形:void getdfree(drive,dtable) unsigned char drive;驅(qū)動器號(0-當(dāng)前;1-A;2-B;...) struct dfree { unsigned df_avail;//可使用的簇數(shù) unsigned df_total;//每個驅(qū)動器的簇數(shù) unsigned df_bsec;//每個扇區(qū)的字節(jié)數(shù) unsigned df_sclus;//每個簇的扇區(qū)數(shù)(出錯時返回0xffff) }*dtable;功能:把由drive指定的關(guān)于驅(qū)動器的信息返回到dtable函數(shù)64。getdisk()讀取當(dāng)前磁盤驅(qū)動器號函數(shù)原形:int getdisk(void)功能:取得當(dāng)前驅(qū)動器號(0=A;1=B;....)頭文件:dir.h函數(shù)65。getenv()讀取環(huán)境變量的當(dāng)前值的函數(shù)原形:char *getenv(const char *name)用法:s=getenv("環(huán)境變量名"); 需先定義char *s;功能:返回一給定的環(huán)境變量值,環(huán)境變量名可大寫或小寫。如果指定的變量在環(huán)境中未定義,則返回一空串。 頭文件:stdlib.h函數(shù)66。getimage()將指定區(qū)域的位圖象存入內(nèi)存的函數(shù)原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)功能:將圖像(矩形區(qū)域)從屏幕拷貝到內(nèi)存,*bitmap指向內(nèi)存中存放圖像的區(qū)域。該區(qū)域的前兩個字節(jié)用于存放矩形的高和寬。頭文件:graphics.h函數(shù)67。getmaxx()返回屏幕上最大的X坐標值的函數(shù)原形:int far getmaxx(void)功能:返回當(dāng)前圖形驅(qū)動程序和圖形模式下最大的X坐標值。頭文件:graphics.h函數(shù)68。getmaxy()返回屏幕上最大的Y坐標值的函數(shù)原形:int far getmaxy(void)功能:返回當(dāng)前圖形驅(qū)動程序和圖形模式下最大的Y坐標值。頭文件:graphics.h函數(shù)69。getpixel()讀取像素顏色的函數(shù)原形:unsigned far getpixel(int x,int y)頭文件:graphics.h函數(shù)70。getpsp()原形∶unsigned getpsp(void)功能∶使用DOS系統(tǒng)調(diào)用0x62,返回程序段前綴(PSP)的段地址頭文件∶dos.h函數(shù)71。gets()從標準輸入流stdio中讀取一字符串的函數(shù)功能:將鍵盤上輸入的字符串立刻賦予字符串變量并顯示出來調(diào)用方式:gets(字符串變量名)注:需定義 char *字符串變量名;函數(shù)72。gettime()讀取系統(tǒng)時間的函數(shù)原形:void gettime(ptime) struct time { unsigned char ti_min; unsigned char ti_hour; unsigned char ti_hund;//百分之一秒 unsigned char ti_sec; }; struct time *ptime;函數(shù)73。getvect()讀取中斷向量函數(shù)原形:void interrupt(*getvect(int interruptno))功能:讀入由interruptno(0-255之間)所指定的中斷向量值,并把該中斷向量值作為中斷函數(shù)的遠指針返回。返回值:指定中斷向量的當(dāng)前4字節(jié)值。頭文件:dos.h使用實例:oldfunc=getvect(5); 先定義void interrupt(*oldfunc)(); 用后恢復(fù)setvect(5,oldfunc);函數(shù)74。getx()返回當(dāng)前圖形方式下位置的X坐標值的函數(shù)原形:int far getx(void);頭文件:graphics.h函數(shù)75。gety()返回當(dāng)前圖形方式下位置的Y坐標值的函數(shù)原形:int far gety(void);頭文件:graphics.h函數(shù)76。imagesize()返回保存圖像緩沖區(qū)大小的函數(shù)原形:unsigned far imagesize(int left,int top,int right,int bottom)功能:確定保存圖像所需的存儲區(qū)大小。返回值:返回存儲區(qū)的大小(字節(jié)),若所需內(nèi)存大于等于64K-1字節(jié),則返回0xffff(-1)。頭文件:graphics.h函數(shù)77。initgraph()顯示模式控制函數(shù)(初始化圖形系統(tǒng)函數(shù))功能:把圖形適配器設(shè)置為一種圖形模式,將選擇的圖形驅(qū)動程序(在BGI文件中)裝入到內(nèi)存。調(diào)用方式: void far initgraph(int far *driver,int far *mode,char far*path) 其中: *driver可以是數(shù)值(0-10),也可是符號值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。 *mode參數(shù)從圖形系統(tǒng)為各種常用的圖形適配器設(shè)置的圖形模式中(CGAC0、...、IBM8514HI--見頭文件graphics.h)選取。常用的有:VGAMED或1
創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元葉城做網(wǎng)站,已為上家服務(wù),為葉城各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
C語言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實際參數(shù)表)
對無參函數(shù)調(diào)用時則無實際參數(shù)表。實際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構(gòu)造類型數(shù)據(jù)及表達式。各實參之間用逗號分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫在被調(diào)用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調(diào)用,調(diào)用自定義函數(shù)fun,其中a,b為實際參數(shù),傳遞給被調(diào)用函數(shù)的輸入值
}
//?自定義函數(shù)fun
int?fun(int?x,?int?y)??//?函數(shù)首部
{??//?{}中的語言為函數(shù)體
return?xy???x?:?y;??//?返回x和y中較大的一個數(shù)
}
擴展資料
C語言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題。但是C語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。
這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語句時,即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時,又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點繼續(xù)執(zhí)行。
參考資料:函數(shù)調(diào)用_百度百科
#include?stdio.h????
#include?ctype.h????
#include?string.h????
#include?stdlib.h????
#define?LIM_LEN?30????
void?bad_exit(void);????
/*-----十六進制字符串轉(zhuǎn)化為十進制-------chapter2_2.3---------------*/????
/*-------首先定義一個返回值為int型的冪函數(shù)pow1-------*/????
int?pow1(int?m,int?n)????
{????
int?i;????
int?x?=?1;????
for(i?=?0;i??n;i++)????
{????
x?*=?m;????
}????
return?x;????
}????
/*-------首先定義一個返回值將十六進制轉(zhuǎn)化為int型的函數(shù)htoi-------*/????
int?htoi(char?s[])????
{????
int?n,m,i;????
int?count?=?0;????
int?mzs?=?0;??//控制冪函數(shù)的指數(shù)????
char?c;????
int?ch[LIM_LEN];????
enum?mark?{NO,YES};???//定義標記符號????
enum?mark?flag;????
i?=?0;????
n?=?strlen(s);???//字符串的長度,屬于string.h頭文件庫中????
//printf("n=%d\n",n);????
if(s[i]?==?'0')??//除去字符串中的0X或者0x????
{????
i++;????
if(s[i]?==?'x'?||?s[i]?==?'X')????
{????
i++;????
}????
}????
//printf("i=%d\n",i);????
//printf("%d\n",i);????
flag?=?YES;????
//printf("%d\n",YES);????
for(i,m?=?0;i??n??flag?==?YES;i++)???//將字符串轉(zhuǎn)化為相應(yīng)的十六進制數(shù)字并放入一個int數(shù)組中????
{????
c?=?s[i];????
if(isdigit(c))????
{????
ch[m]?=?s[i]?-?'0';????
}????
else?if(c?=?'a'??c?=?'f')????
{????
ch[m]?=?s[i]?-?'a'?+?10;????
}????
else?if(c?=?'A'??c?=?'F')????
{????
ch[m]?=?s[i]?-?'A'?+?10;????
}????
else????
{????
flag?=?NO;????
atexit(bad_exit);???//參數(shù)為函數(shù)指針,雖然在內(nèi)部定義但是還需要在文件中函數(shù)聲明,要不就是錯誤????
exit(EXIT_FAILURE);???//參數(shù)EXIT_FAILURE和EXIT_SUCCESS????
//puts("the?input?isn't?0-9?or?a-f!");?????//打印但是會計算一個溢出錯誤值,上述方法可避免????
}????
m++;????
}????
//printf("i=%d\n",i);????
//printf("m=%d\n",m);????
m?=?m-1;???//m多計數(shù)一次,需要退回一次---------------每次一定考慮是否多計數(shù)?。?!????
for(m;m?=?0;m--)???//累加來求出int型的值????
{????
count?+=?ch[m]?*?pow1(16,mzs);????
mzs++;????
}????
return?count;????
}????
/*-------錯誤退出注冊函數(shù)給atexit()使用-------*/????
void?bad_exit(void)????
{????
puts("the?input?isn't?0-9?or?a-f!");????
}????
/*-------首先定義一個返回值將十六進制轉(zhuǎn)化為int型的函數(shù)htoi的驅(qū)動函數(shù)-------*/????
void?htoi_test()????
{????
int?count;????
char?n_nums[]?=?"0X12a";???//298????
count?=?htoi(n_nums);????
printf("%d\n",count);????
}????
/*-----十六進制字符串轉(zhuǎn)化為十進制-------chapter2_2.3------over---------*/
C語言中調(diào)用函數(shù)的方法及步驟:
工具/原料:C語言
1、首先需要輸入想要調(diào)用的函數(shù)。
2、然后當(dāng)輸入一個括號后,即可觀察他的參數(shù)。
3、接著在對應(yīng)的參數(shù)中輸入?yún)?shù)值。
4、然后,系統(tǒng)會發(fā)生一個警告。
5、接著需要調(diào)用它相應(yīng)的頭文件。
6、最后再次編譯,發(fā)現(xiàn)沒有任何警告和錯誤即可。
你把四個頂點坐標弄下來.
A(x1,y1)
B(x2,y2)
C(x3,y3)
D(x4,y4)
將四邊形分成兩個三角形ABD和BCD
然后由矢量代數(shù)知識.三角形面積等于兩矢量的叉乘*0.5
面積 = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
+ fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));
*求 s=1+2+3+…+100 的值。
#include stdio.h //標準頭文件
main() //main函數(shù),程序的入口
{ int j,s;
j=1; s=0;
while (j100) //while循環(huán)
{ s=s+j; j++; } // 所求的和s
printf(“%d\n”,s); //輸出和s的值
}