第一篇:C语言函数学习
函数
一:学习目的
1:正确理解函数在C语言程序设计中的作用和地位。2:熟悉函数的定义、原型声明和调用的方法。3:熟悉数组名做函数参数的用法
二:学习准备
1:有一个一维数组score,内放10个学生成绩,求平均成绩。
#include
float score[10],aver;int i;
printf(“input 10 scores:n”);
for(i=0;i<10;i++)
scanf(“%f”,&score[i]);
printf(“n”);
aver=average(score);
printf(“%5.2fn”,aver);}
float average(float array[10]){ int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return(aver);} 2:有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。
#include
float score1[5]={98.5,97,91.5,60,55};
float score2[10]={6 5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
printf(“%6.2fn”,average(score1,5));
printf(“%6.2fn”,average(score2,10));} float average(float array[ ],int n)
{ int i;
float aver,sum=array[0];
for(i=1;i sum=sum+array[i]; aver=sum/n; return(aver);} 三:实验内容: 1:选择题 (1)以下函数调用语句中含有_ _B_______个实参。 fun((exp1,exp2),(exp3,exp4,exp5)); A.1 B.2 C.4 D.5(2)以下说法正确的是(C)。 (3)以下程序有语法性错误,有关错误原因的正确说法是(C)。 Main(){int G=5,k;void prt_char();…… k=prt_char(G);……} (4)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。 (5)若用数组名作为函数调用的实参,传递给形参的是(A)。 (6)若使用一维数组名作函数参数,则以下正确的说法是(C)。 2:编程题: 1、编写函数fun,它的功能是输出一个200以内能被3整除且个位数为6的所有整数,返回这些数的个数。#include int i,a=0;printf(“这些数分别为:”);for(i=6;i<200;i+=10){ if(i%3==0)a++;if(i%3!=0)continue;} printf(“%d ”,i);printf(“n”);printf(“这些数的个数为%d个n”,a);} void main(){ } 2、已有变量定义和函数调用语句:int a=1,b=-5,c;c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将计算好的值返回调用函数,请编写程序。#include if(z<0)z*=-1;else z*=1;return(z);} int main(){ int a=1,b=-5,c;c=fun(a,b);printf(“%dn”,c);} 3、写一个函数,要求把从主函数传递过来的一个字符串中的大写字母、小写字母、数字和其它字符进行统计,并把结果显示输出。 #include { int a=0,b=0,c=0,d=0;int i;for(i=0;i if(e[i]>'A'&&e[i]<'Z')a++;else if(e[i]>'a'&&e[i]<'z')b++;else if(e[i]>'0'&&e[i]<'9')c++;else d++;} printf(“大写字母有%d个n小写字母有%d个n数字有%d个n其它字符有%d个n”,a,b,c,d); } void main(){ char e[1024];int n;printf(“请输入一串字符n”);gets(e);n=strlen(e);fun(e,n);} 4、输入一个字符串,然后在一个函数中把这个字符串里的字长符头尾互换:如输入字符串chinese,要输出:esenihc。 #include int i;printf(“倒序后输出的字符为n”);for(i=len-1;i>=0;i--){ printf(“%c”,ch[i]); } printf(“n”);} void main(){ char ch[1024];int len;printf(“请输入一串字符:n”);gets(ch);len=strlen(ch);fun(ch,len);} Turbo C函数 Turbo C函数 alloc.h brk 【功能】更改数据段空间的分配 【原型】int brk(void *endds)【位置】alloc.h 【说明】将程序数据段的顶部设置为endds所指向的内存位置。调用成功之后,返回0。如果调用失败则返回-1,同时设置errno。【参见】coreleft calloc 【功能】分配内存。 【原型】void *calloc(size_t nelem,size_t elsize)【位置】stdib.h,alloc.h 【说明】为nelem数据项的每elsize个字节分别分配空间,同时在空间中保存0值。返回一个指向新分配块的指针,如果没有足够的空间则返回NULL。【参见】malloc coreleft 【功能】返回测出的未使用内存量。 【原型】小型模块中unsigend long coreleft(void)【位置】alloc.h 【参见】malloc farcallc 【功能】从高端开始分配内存。 【原型】void far *farcalloc(unsigned ling nunits,unsigned ling unitsz)【位置】alloc.h 【说明】为nunits数据项的每unitsz个字节分配空间。返回指向新分配块的指针,如果没有足够的空间创建数据块,则返回NULL 【参见】farmalloc,farfree,farcoreleft,malloc,calloc farcoreleft 【功能】返回测出的高端未使用内存量。【原型】unsigned long farcoreleft(void)【位置】alloc.h 【说明】返回最高分配数据块和内存末端之间所剩的所有空间量(按照字节计算)。【参见】farcalloc,farmalloc,coreleft farfree 【功能】从高端释放一个数据块。 【原型】void farfree(void far *block)【位置】alloc 【参见】farmalloc,farcalloc farmalloc 【功能】从高端开始分配。 【原型】void far *farmalloc(unsigned long nbytes)【位置】alloc.h 【说明】返回一个指向新分配数据块的指针,如果没有足够的空间创建数据块则返回NULL 【参见】farcoreleft,farfree,farcalloc,malloc,farrealloc farrealloc Turbo C函数 【功能】调整高端的分配数据块。 【原型】void far *farrealloc(void far *oldblock,unsigned long nbytes)【位置】alloc.h 【说明】返回重新分配数据块的地址,如果分配失败则返回NULL。返回值可能与源地址不同。【参见】farmalloc,realloc free 【功能】释放通过malloc或者calloc分配的数据块。【原型】void free(void *block)【位置】stdlib.h,alloc.h 【参见】maloc,calloc,freemem malloc 【功能】分配内存。 【原型】void *malloc(size_t size)【位置】alloc.h,stdlib.h 【说明】大小按照字节计算。返回一个指向新分配数据块的指针,如果没有足够的空间创建数据块,则返回NULL。如果size==0,则也返回NULL。 【参见】allicmem,free,calloc,realloc,farmalloc realloc 【功能】重新分配主存。 【原型】void *realloc(void *block,size_t size)【位置】alloc.h,stdlib.h 【说明】尝试将原先分配的数据块扩大或者缩小只size字节值。返回重新分配之后与原有地址不同的数据块的地址。如果数据块不能重新分配,或者size==0,则返回NULL 【参见】malloc,free sbrk 【功能】更改数据段的空间分配。【原型】void *sbrk(int incr)【位置】alloc.h 【说明】为数据块添加incr个字节。成功实现之后,sbrk返回原有中断值。如果失败则返回-1,同时设置errno.【参见】brk ASSERT.H assert 【功能】对条件进行测试,可能会退出程序运行。【原型】void assert(int test)【位置】assert.h 【参见】abort BIOS.H bioscom 【功能】RS-232的I/O通讯。 【原型】int bioscom(int cmd,char abyte,int port)【位置】bios.h 【说明】cmd的值及含义如下。0 设置通讯参数abyte。1 将abyte发送出去。接受一个字符(位于返回值的下8位中)。 Turbo C函数 返回状态。 Port为0表示COM1,为1表示COM2,依次类推。 返回值的高8位表示状态位,低8位内容根据cmd而定。biosdisk 【功能】BIOS磁盘服务。 【原型】int biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer) 【位置】bios.h 【说明】成功返回0,否则返回值为错误代码。biosequip 【功能】检查设备。 【原型】int biosequip(void)【位置】bios.h 【说明】返回BIOS设备的标记。bioskey 【功能】键盘接口。 【原型】bioskey(int cmd)【位置】bios.h 【说明】cmd的取值及动作如下。Cmd 动作 0 返回缓存中键入的扫描码,并从缓存中删除它。如果缓存为空,则等待下一次键入。1 返回缓存中键入的扫描码,但是不从缓存中删除它。如果缓存为空,则返回0。2 返回BIOS切换状态的标志。biosmemory 【功能】返回内存大小。 【原型】int biosmemory(void)【位置】bios.h 【说明】返回内存大小,以1KB为单位。biosprint 【功能】直接使用BIOS实现打印机I/O。 【原型】int biosprint(int cmd,int abyte,int port)【位置】bios.h 【说明】如果cmd为0,说明字节已经打印。如果cmd为1,说明打印机端口已经初始化。如果cmd为2,说明当前打印机状态可读。 对应所有cmd数值都返回当前打印机状态。biostime 【功能】BIOS定时器服务程序。 【原型】long biostime(int cmd,long newtime)【位置】bios.h 【说明】如果cmd为0,则读取BIOS定时器,如果cmd为1则设置BIOS定时器。时间从午夜开始计算,以时钟滴答为单位,每秒18.2的滴答。 CONIO.H cgets 【功能】从控制台读取字符串。【原型】char *cgets(char *str)【位置】conio.h Turbo C函数 【说明】str[0]必须包含读入字符串的最大长度,str[1]则相应地设置为实际读入字符的个数。字符串从str[2]开始,函数返回&str[2]。【参见】cputs,gets,fgets clreol 【功能】清除文本模式的行尾。【原型】void clreol(void)【位置】conio.h 【参见】clrscr,delline,window clrscr 【功能】清除文本模式的窗口。【原型】void clrscr(void)【位置】conio.h 【参见】clreol,delline,window cprintf 【功能】在屏幕上的文本窗口中格式化输出 【原型】int cprintf(const char *format,…)【位置】conio.h 【说明】返回输出的字节个数。【参见】printf cputs 【功能】在屏幕上的文本窗口中书写字符串。【原型】int cputs(const char *str)【位置】conio.h 【说明】返回打印的最后一个字符。【参见】cgets,puts,fputs cputs 【功能】在屏幕上的文本窗口中书写字符串。【原型】int cputs(const char *str)【位置】conio.h 【说明】返回打印的最后一个字符串。【参见】cgets,puts,fputs cscanf 【功能】从控制台执行格式化输入。 【原型】int cscanf(char *format [,argument,…])【位置】conio.h 【说明】返回成功处理的输入字段数目。如果函数在文件结尾处读入,则返回值为EOF。【参见】scanf delline 【功能】删除文本窗口中的行。【原型】void delline(void)【位置】conio.h 【参见】clreol,clrscr,windows getch、getche 【功能】getch从控制台得到字符,但是不回显。Getche也从控制台得到字符,但同时回显在屏幕上。 【原型】int getch(void)4 Turbo C函数 int getche(void)【位置】conio.h 【说明】两个函数都返回读取的字符。字符马上就可以使用,无需等到缓存整行之后。类似功能键和方向键这些特殊键都使用两个字符组成的序列表示:一个0字符随后跟一个按键的扫描码。【参见】getpass,cgets,cscanf,kbhit,ungetch,putchar,getc getpass 【功能】读入口令。 【原型】char *getpass(const char *prompt)【位置】conio.h 【说明】返回一个指针,指向这次调用覆盖的一个静态字符串。【参见】getch gettext 【功能】从文本模式的屏幕上将文本拷贝至内存中。 【原型】int gettext(int left,int top,int right,int bottom,void *destin)【位置】conio.h 【说明】坐标值与屏幕相关,左上角为(1,1)。如果成功则返回一个非0值。【参见】puttext,movetext gettextinfo 【功能】得到文本模式的视频信息。 【原型】void gettextinfo(struct text_info *r)【位置】conio.h 【说明】结果以inforec的形式返回。 【参见】texttr,textbackground,textcolor,textmode,wherex,wherey,window gotoxy 【功能】在文本窗口中定位光标。【原型】void gotoxy(int x,int y)【位置】conio.h 【参见】wherex,wherey,window highvideo 【功能】选择高密度的文本字符。【原型】void highvideo(void)【位置】conio.h 【说明】影响随后的文本窗口函数调用,例如putch和cprintf。【参见】lowvideo,normvideo,textcolor,gettextinfo,cputs,putch insline 【功能】在文本窗口的当前光标位置插入空白行。【原型】void insline(void)【位置】conio.h 【说明】当前光标位置的下一行依次向下推,最后一行消失。【参见】clreol,delline,window kbhit 【功能】检查最近的键盘输入。【原型】int kbhit(void)【位置】conio.h 【说明】如果存在键盘输入,则kbhit返回一个非0整数。【参见】getc Turbo C函数 lowvideo 【功能】 为文本窗口输出选择低密度的字符。【原型】void lowvideo(void)【位置】conio.h 【说明】影响随后的文本窗口函数调用,例如putch和cprintf。【参见】highvideo,normvideo movetext 【功能】将屏幕上一个矩形范围的文本拷贝至另一个矩形中(文本模式)。 【原型】int movetext(int left,int top,int right,int bottom,int destleft,int desttop)【位置】conio.h 【说明】坐标与屏幕左上角(1,1)相对应,如果操作成功则返回非0值。【参见】gettext,puttext normvideo 【功能】选择正确密度的字符。【原型】void normvideo(void)【位置】conio.h 【说明】影响随后的文本窗口函数调用,例如putch和cprintf。【参见】highvideo,lowvideo putch 【功能】在屏幕上的文本窗口中输出字符。【原型】int putch(int ch)【位置】conio.h 【说明】使用当前的颜色和显示属性,返回显示字符ch。【参见】cprintf,cputs,getch.putc.putchar prttext 【功能】将内存中的文本拷贝至屏幕上。 【原型】int puttext(int left,int top,int right,int bottom,void *source)【位置】conio.h 【说明】坐标与屏幕左上角(1,1)相对应,如果成功则返回一个非0值。【参见】gettext,movetext,window textattr 【功能】设置文本窗口函数的文本属性。【原型】void textattr(int newattr)【位置】conio.h 【参见】textclolor,textbackground textbackground 【功能】选择文本模式下的新背景颜色。 【原型】void textbackground(int newcolor)【位置】conio.h 【参见】textcolor,textattr textcolor 【功能】选择文本模式下的新字符颜色。【原型】void textcolor(int newcolor)【位置】conio.h 【参见】textbackground, textattr,highvideo,lowvideo,normvideo ungetch 6 Turbo C函数 【功能】将一个字符退回至键盘。【原型】int ungetch(int ch)【位置】conio.h 【说明】下一次调用getch或者其他控制台输入函数时,将返回ch。如果成功则返回字符ch,返回EOF。 【参见】getch textmode 【功能】更改屏幕模式(文本模式下)。【原型】void textmode(int newmode)【位置】conio.h 【说明】不能用来将图片模式更改为文本模式。【参见】initgraph,gettextinfo wherex 【功能】得到当前文本窗口中光标的水平位置。【原型】int wherex(void)【位置】conio.h 【说明】返回从1到80范围内的一个整数。【参见】wherey,gettextinfo,gotoxy wherey 【功能】得到当前文本窗口中光标的垂直位置。【原型】int wherey(void)【位置】conio.h 【说明】返回一个从1到25范围内的一个整数。【参见】wherex,gettextinfo,gotoxy window 【功能】定义激活的文本模式窗口。 【原型】void window(int left,int top,int right,int bottom)【位置】conio.h 【说明】屏幕左上角的坐标为(1,1)【参见】gettextinfo,textmode CTYPE.H isascii 【功能】如果c为有效的ASCII字符,则返回真。【原型】isascii(c)【位置】ctype.h isalnum 【功能】如果c为字母或者数字,则返回真。【原型】isalnum(c)【位置】ctype.h isalpha 【功能】如果c为字母,则返回真。【原型】isalpha(c)【位置】ctype.h iscntrl 【功能】如果c为删除字符或者普通的控制字符,则返回真。【原型】iscntrl(c) Turbo C函数 【位置】ctype.h isdigit 【功能】如果c为数字,则返回真。【原型】isdigit(c)【位置】ctype.h isgraph 【功能】除了不包括空格字符之外,其功能与isprint一致。【原型】isgraph(c)【位置】ctype.h islower 【功能】如果c为小写字母。则返回真。【原型】islower(c)【位置】ctype.h isprint 【功能】如果c为可打印字符,则返回真。【原型】isprint(c)【位置】ctype.h ispuct 【功能】如果c为标点符号字符,则返回真。【原型】ispuct(c)【位置】ctype.h isspace 【功能】如果c为空格、制表符、回车符、换行符、垂直制表符或者换页符时,返回真。【原型】isspace(c)【位置】ctype.h isupper 【功能】如果c为大写字母,则返回真。【原型】isupper(c)【位置】ctype.h isxdigit 【功能】如果c为十六进制数字,则返回真。【原型】isxdigit(c)【位置】ctype.h toascii 【功能】将大于127的c转换到0~127范围,只保留c的低7位。【原型】toascii(c)【位置】ctype.h _tolower 【功能】将[A~Z]范围内的字符c转换为[a~z]范围内的字符。【原型】_tolower(c)【位置】ctype.h _toupper 【功能】将[a~z]范围内的字符c转换为[A~Z]范围内的字符。【原型】_toupper(c)【位置】ctype.h DIR.H 8 Turbo C函数 chdir 【功能】更改当前目录。 【原型】int chdir(const char *path)【位置】dir.h 【说明】成功实现之后,chdir返回一个0值。否则返回-1,同时设置errno。【参见】mkdir,rmdir findfirst 【功能】搜索磁盘目录。 【原型】int findfirst(const char *filename,struct ffblk *ffblk,int attrib)【位置】dir.h 【说明】文件路径中可以包括通配符?(匹配单个字符)和*(匹配多个字符)。如果成功返回0,没有找到匹配结果或者出错则返回-1,同时设置errno。findnext 【功能】继续执行findfirst搜索。 【原型】int findnext(struct ffblk *ffblk)【位置】dir.h 【说明】文件路径中可以包括通配符?(匹配单个字符)和*(匹配多个字符)。如果成功返回0,没有找到匹配结果或者出错则返回-1,同时设置errno。fnmerge 【功能】使用各个组成部分组建一个路径。 【原型】void fnmerge(char *path,const char *drive,const char *dir,const char *name,const char *ext)【位置】dir.h 【参见】fnsplit fnsplit 【功能】将一个路径分解成多个组成部分。 【原型】int fnsplit(const char *path,char *drive,char *dir,char *name,char *ext)【位置】dir.h 【说明】返回一个整数,由5个标志位组成。【参见】fnmerege getcurdir 【功能】得到指定驱动器的当前目录。 【原型】int getcurdir(int drive,char *directory)【位置】dir.h 【说明】drive为0表示默认驱动器 【参见】chdir,getcwd,getdisk,mkdir,rmdir getcwd 【功能】得到当前工作目录。 【原型】char *getcwd(char *buf,int buflen)【位置】dir.h,dos.h 【说明】返回一个指向buf的指针,出现错误时返回NULL,同时设置errno。【参见】getcurdir,getdisk,mkdir,chdir,rmdir getdisk 【功能】得到当前驱动器。【原型】int getdisk(void)【位置】dir.h Turbo C函数 【说明】返回当前驱动器号,A驱动器使用0表示 【参见】getcurdir,setdisk,getcwd mkdir 【功能】创建一个目录。 【原型】int mkdir(const char *path)【位置】dir.h 【说明】成功返回0,错误则返回-1,同时设置errno 【参见】chdir,rmdir mktemp 【功能】创建一个唯一的文件名称。【原型】char *mktemp(char *template)【位置】dir.h 【说明】使用唯一的文件名称替换template,并且返回template的地址。Template必须由一个非空字符串和6个X后缀组成,例如MYFILEXXXXXX。rmdir 【功能】删除目录。 【原型】int rmdir(const char *path)【位置】dir.h 【说明】成功返回0,错误返回-1,同时设置errno。【参见】mkdir,chdir searchpath 【功能】在DOS路径中检索一个文件。 【原型】char *searchpath(const char *file)【位置】dir.h 【说明】成功则返回一个指针,指向表示文件完全路径名称的字符串,否则返回NULL。返回的字符串保存在一个静态区域内,每次重新调用都将覆盖这一区域。【参见】exec…,findfirst,open,system setdisk 【功能】设置当前磁盘驱动器。【原型】int setdisk(int driver)【位置】dir.h 【说明】drive数值为0=A,1=B,2=C,依次类推。函数返回所有可用驱动器总数。 DOS.H absread 【功能】读入绝对磁盘扇区。 【原型】int absread(int drive,int 1sect,void *buffer)【位置】dos.h 【说明】driver值为0=A,1=B,2=C,以此类推。Nsect表示读/写的扇区号码。1sect表示开始逻辑扇区(第1个为0)。Buffer表示数据区的地址。成功返回0,错误返回-1并设置errno。abswrite 【功能】写入绝对磁盘扇区。 【原型】int abswrite(int drive,int nsects,int 1sect,void *buffer)【位置】dos.h 【说明】driver值为0=A,1=B,2=C,以此类推。Nsect表示读/写的扇区号码。1sect表示开始逻辑扇区(第1个为0)。Buffer表示数据区的地址。成功返回0,错误返回-1并设置errno。allocmem 10 Turbo C函数 【功能】分配DOS内存片断。 【原型】int allocmem(unsigned size,unsigned *segp)【位置】dos.h 【说明】size表示请求的16位段落的号码,分配区域的段地址保存在*segp中(offset=0)。成功返回-1,否则返回最大可用数据块的大小,并设置_doserrno和errno。【参见】freemem bdos 【功能】MS DOS的系统调用。 【原型】int bdos(int dosfun,unsigned dosdx,unsigned dosal)【位置】dos.h 【说明】bdos的返回值为系统调用设置的AX值。【参见】bdosptr,int86,int86x bdosptr 【功能】MS DOS的系统调用。 【原型】int bdosptr(int dosfun,void *argument,unsigned dosal)【位置】dos.h 【说明】bdosptr的成功返回值为AX值,失败则返回-1,同时设置errno和_doserrno。【参见】bdos,int86,int86x country 【功能】返回与country相关的信息。 【原型】struct country *country(int xcode,struct country *cp)【位置】dos.h 【说明】返回指针参数cp,MS DOS 3.0或以上版本支持。ctrlbrk 【功能】设置控制终端的句柄。 【原型】void ctrlbrk(int(*handler)(void))【位置】dos.h 【说明】句柄函数返回0退出当前程序,否则程序将继续执行。delay 【功能】中断执行一段时间(以毫秒计算)。【原型】void delay(unsigned milliseconds)【位置】dos.h 【参见】sleep disable 【功能】禁止中断。 【原型】void disable(void)【位置】dos.h 【说明】禁止除了NMI之外的所有硬件中断。【参见】enable dosexterr 【功能】得到DOS扩展错误的信息。 【原型】int dosexterr(struct DOSERROR *eblkp)【位置】dos.h 【说明】根据最后一次DOS调用填写eblkp结构。返回exterror结构的值。dostounix 【功能】蒋时间和日期转换成为NUIX格式。 Turbo C函数 【原型】long dostounix(struct date*d,struct time *t)【位置】dos.h 【说明】返回UNIX格式的日期和时间参数(秒数从1970年1月1日(GMT)开始计算)。【参见】unixtodos _emit_ 【功能】直接在代码中插入文字。【原型】void emit(argument,…)【位置】dos.h enable 【功能】允许硬件中断。【原型】void enable(void)【位置】dos.h 【参见】disable FP_OFF 【功能】得到远端偏移地址。 【原型】unsigned FP_OFF(farpointer)【位置】dos.h 【参见】movedata,segread FP_SEG 【功能】得到远端分段地址。 【原型】unsigned FP_SEG(farpointer)【位置】dos.h 【参见】movedata,segread freemem 【功能】释放原先使用allocmem分配的DOS内存块。【原型】int freemem(unsigned segx)【位置】dos.h 【说明】成功返回0,错误返回-1,同时设置errno。【参见】allocmem,free geninterrupt 【功能】生成软件中断。【原型】 【位置】dos.h 【说明】调用之后可能所有寄存器的状态都根据调用的中断而定。注意,中断可能导致C使用的寄存器处于一种不可预见的状态之中。 【参见】int86,int86x,intdos,intdosx,bdos,bdosptr,intr,enable,disable getcbrk 【功能】得到控制中断的设置。【原型】int getcbrk(void)【位置】dos.h 【说明】如果control_break检查被关闭则返回0,如果检查被打开则返回1。【参见】setcbrk,ctrlbrk getcwd 【功能】得到当前工作目录。 【原型】char *getcwd(char *buf,int buflen)【位置】dos.h,dir.h Turbo C函数 【说明】返回一个指向buf的指针,出现错误时返回NULL,同时设置errno。【参见】getcurdir,getdisk,mkdir,chdir,rmdir getdate 【功能】得到MS DOS日期。 【原型】void getdate(struct date *datep)【位置】dos.h 【参见】setdate,gettime,ctime getdfree 【功能】得到磁盘的剩余空间。 【原型】void getfree(unsigned char drive,struct dfree *dtable)【位置】dos.h 【说明】如果出错,则dtable结构中的df_sclus将设置为-1 【参见】getfat getdta 【功能】得到磁盘转移地址。【原型】char far *getdta(void)【位置】dos.h 【说明】返回一个指针,指向当前的磁盘转移地址。【参见】struct,fcb,setdta getfat 【功能】得到指定驱动器的文件分配表信息。 【原型】void getfat(unsigned char driver,struct fatinfo *dtable)【位置】dos.h 【参见】getdfree,getfatd getfatd 【功能】得到文件分配表信息。 【原型】void getfatd(struct fatinfo *dtable)【位置】dos.h 【参见】getdfree,getfat getftime 【功能】得到文件的日期和时间。 【原型】int getftime(int handle,struct ftime *fftimep)【位置】dos.h 【说明】成功返回0,错误则返回-1,同时设置errno 【参见】setftime,open getpsp 【功能】得到程序分段的前缀。【原型】unsigned getsp(void)【位置】dos.h 【说明】适用于MS DOS 3.0或者更新的版本。【参见】_psp,getenv gettime 【功能】得到系统时间。 【原型】void gettime(struct time *timep)【位置】dos.h 【参见】settime,getdate Turbo C函数 getvect 【功能】得到中断扇区。 【原型】void interrupt(*getvect(int intr_num))()【位置】dos.h 【说明】返回在intr_num中断扇区中保存的一个4字节树脂。【参见】setvect,disable,enable getverify 【功能】得到校验状态。 【原型】int getverify(void)【位置】dos.h 【说明】如果校验标志关闭则返回0,如果校验标志打开则返回1。【参见】setverify harderr 【功能】建立一个硬盘错误句柄。 【原型】void harderr(int(*(handler)))【位置】dos.h 【说明】当MS DOS出现致命错误(int 0x24)时,掉用句柄指向的函数。【参见】hardresume.hardretn,longjmp hardresume 【功能】硬件错误句柄函数。 【原型】void hardresume(int axret)【位置】dos.h 【说明】harderr建立的错误句并可以将执行控制权返回给通过这个函数发布致命错误的MS DOS程序。Axret中的数值返回给MS DOS(0表示忽略,1表示重试,2表示退出)【参见】hardretn hardretn 【功能】硬件错误句柄函数。 【原型】void hardretn(int retn)【位置】dos.h 【说明】调用该函数之后,harderr建立的错误句柄可以直接返回应用程序。Retn中的数值返回到用户程序中,覆盖生成致命错误的MS DOS函数返回的正常值。【参见】hardresume inp 【功能】从硬件端口读取一个字节。【宏原型】int inp(int portid)【位置】dos.h 【参见】inport,inporth inport 【功能】从硬件端口读取一个词。【原型】int inport(int portid)【位置】dos.h 【参见】inportb,outport inportb 【功能】从硬件端口读取一个字节。 【原型】unsigned char inportb(int portid)【位置】dos.h Turbo C函数 【参见】inport,outportb int86 【功能】常用的8086软件中断。 【原型】int int86(int intno,union REGS *inregs,union REGS *outregs)【位置】dos.h 【说明】该函数将保存在inregs中的数值装载到CPU寄存器中,发出中断intno,然后在outregs中保存结果CPU寄存器。【参见】int86x,intdos,intr int86x 【功能】常用的8086软件中断接口。【原型】int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS *segregs)【位置】dos.h 【说明】该函数将inregs和segregs中的数值装载到CPU寄存器中,发布中断intno,然后在outregs和segregs中保存最终的CPU寄存器数值。【参见】int86,intdosx,intr intdos 【功能】常用的MS DOS中断接口。 【原型】int intdos(union REGS *inregs,union REGS *outregs)【位置】dos.h 【说明】该函数将inregs中保存的数值装载到CPU寄存器中,发布MS DOS中断(int 33或者0x21),然后在outregs中保存最终的CPU寄存器树脂。【参见】indosx,int86,intr,bdos,bdosptr intdosx 【功能】常用的MS DOS中断接口。 【原型】int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)【位置】dos.h 【说明】intdosx将inregs和segregs中的数值装载到CPU寄存器中,发布DOS中断(int 0x21),然后在outregs/segregs中保存最终的CPU寄存器数值。【参见】intdos,int86x,intr,bdos,bdosptr intr 【功能】转换8086软件中断的借口。 【原型】void intr(int intno,struct REGPACK *preg)【位置】dos.h 【说明】该函数将preg中保存的数值装载到CPU寄存器中,发布中断intno,然后在preg中保存结果CPU寄存器的数值。 【参见】int86,int86x,intdos keep 【功能】程序退出运行,但是继续驻留内存。 【原型】void keep(unsigned char status,unsigned size)【位置】dos.h 【说明】该函数没有返回。它只是退到DOS状态,同时在status中保存返回值,但是程序仍然驻留在内存中。程序在中断运行之前被设置成为size大小的段落,剩余的程序内存则返回给DOS。【参见】ABORT,EXIT,EXEC,SPAWN,SYSTEM MK_FP 【功能】创建一个远端指针。 【原型】void far *MK_FP(se,off) Turbo C函数 【位置】dos.h 【参见】movedata,segread nosound 【功能】关闭PC喇叭。 【原型】void nosound(void)【位置】dos.h 【参见】sound,delay outp 【功能】在硬件端口写一个字节。 【宏原型】int outp(int portid,int byte_value)【位置】dos.h 【参见】outport,outportb outport 【功能】在硬件端口输出一个词。 【原型】void outport(int portid,int value)【位置】dos.h 【参见】inport,outportb outportb 【功能】在硬件端口输出一个字节。 【原型】void outportb(int portid,unsigned char value)【位置】dos.h 【参见】inportb,outport parsfnm 【功能】解析文件名称,然后创建文件控制块(FCB)。 【原型】char *parsfnm(const char *cmdline,struct fcb *fcb,int option)【位置】dos.h 【说明】成功解析一个文件名称之后,parsfnm返回一个指针,指向文件名称末尾的下一个字节。如果在解析文件名称时出现任何错误,则返回0。peek 【功能】返回由segment:offset指定内存位置中的词。【原型】int peek(unsigned segment,unsigned offset)【位置】dos.h 【参见】peekb,poke peekb 【功能】返回由segment:offset指定内存位置中的字节。【原型】char peekb(unsigned segment,unsigned offset)【位置】dos.h 【参见】peek,pokeb poke 【功能】在由segment:offset指定内存位置中保存一个整数值。【原型】void poke(unsigned segment,unsigned offset,int value)【位置】dos.h 【参见】peek,pokeb pokeb 【功能】存值到一个指定存储单元。 【原型】void pokeb(unsigned segment,unsigned offset,int value) Turbo C函数 【位置】dos.h 【参见】peek,poke randbrd 【功能】读取随即数据块。 【原型】int randbrd(struct fcb *fcb,int rcnt)【位置】dos.h 【说明】根据randbrd操作的结果,将返回如下数值。0 读入所有记录。到达文件结尾,已经读入最后一条记录。2 循环读入记录。到达文件结尾,最后一条记录尚未读入。【参见】randwr randbwr 【功能】使用文件控制块(FCB)随机写入数据块。【原型】int randbwr(struct fcb *fcb,int rcnt)【位置】dos.h 【说明】根据randbwr操作的结果,将返回如下数值。0 写入所有记录。没有足够的空间写入。2 循环写入。【参见】randbrd segread 【功能】读入段寄存器。 【原型】void segread(struct SREGS *segp)【位置】dos.h 【参见】FP_OFF,intdosx,int86x setblock 【功能】改变原先分配的数据块大小。 【原型】int setblock(unsigned segx,unsigned newsize)【位置】dos.h 【说明】对调用allocmem函数分配的数据块使用。成功时返回-1。如果出现错误,则返回可能出现的最大数据块的大小,并且设置_doserrno。【参见】allocmem,freemem setcbrk 【功能】设置控制中断。 【原型】int setcbrk(int cbrkvalue)【位置】dos.h 【说明】如果cbrkvalue等于1,则每次系统调用都需要检查Ctrl-Break。如果等于0,则只在控制台、打印机和通信I/O调用地进行检查。返回值通过cbrkvalue传递。setdate 【功能】设置MS DOS日期。 【原型】void setdate(struct fate *date *datep)【位置】dos.h 【参见】settime,getdate setdta 【功能】设置磁盘转换地址。 Turbo C函数 【原型】coid setdta(char far *dta)【位置】dos.h settime 【功能】设置系统时间。 【原型】void settime(struct time *timep)【位置】dos.h 【参见】getdate,gettime setvect 【功能】设置中断扇区入口。 【原型】void setvect(int intreeuptno,void interrupt(*isr)())【位置】dos.h 【说明】isr指向出现中断号码为interuptno的中断时调用的函数。如果isr为一个C函数,就应当使用interrupt关键字进行定义。【参见】getvect setverify 【功能】设置校验状态。 【原型】void setverify(int value)【位置】dos.h 【说明】如果value等于1,则每次磁盘写操作之后都将进行一次操作以便确保正确结果(0则表示不在随后进行读操作)。【参见】getverify sleep 【功能】程序执行挂起一段时间。 【原型】void sleep(unsigned seconds)【位置】dos.h 【参见】delay sound 【功能】将PC喇叭打开,并且设置到某个频率。【原型】void sound(unsigned frequency)【位置】dos.h 【说明】频率以赫兹为单位(每秒的圈数)。【参见】nosoubd,delay unixtodos 【功能】将UNIX格式的日期和时间转换成DOS格式。 【原型】void unixtodos(long time,struct date *d,struct time *t)【位置】dos.h 【参见】dostounix unlink 【功能】删除一个文件。 【原型】int unlink(const char *filename)【位置】dos.h,io.h,stdio.h 【说明】如果filename指定的文件属性为只读,泽unlink操作失败。首先需要调用chmod函数改变文件属性。成功返回0,错误返回-1。【参见】chmod,remove FLOAT.H _clear87 18 Turbo C函数 【功能】清除浮点状态。 【原型】unsigned int _clear87(void)【位置】float.h 【说明】返回值的位表示旧的浮点状态。有关状态的详细解释,参见float.h文件中定义的常量。【参见】_fpreset,_status87 _control87 【功能】改变浮点控制词。 【原型】unsigned int _control87(unsigned int new,unsigned int mask)【位置】float.h 【说明】如果mask中的某一位为1,则new中的相应位保持控制词中相同位的新数值。如果mask位0,则说明控制词没有改变。 【参见】_clear87,_fpreset,status87,CWDEFAULT _fpreset 【功能】重新初始化浮点数学包。【原型】void _fpreset(void)【位置】float.h 【说明】该函数必须与exec、spawn、system等函数联合使用,因为子进程可能改变父进程的浮点状态。_status87 【功能】得到浮点状态。 【原型】unsigned int _status87(void)【位置】float.h 【说明】返回值的位说明了浮点状态。【参见】_clear87,_control87,_fpreset GRAPHICS.H bar 【功能】画出一条栏目。 【原型】void far bar(int left,int top,int right,int bottom)【位置】graphics.hgraphics.h 【参见】bar3d,setfillstyle,rectangle bar3d 【功能】画出一条3-D栏目。 【原型】void far bar3d(int left,int top,int right,int bottom,int depth,int topflag)【位置】graphics.h 【参见】bar circle 【功能】以(x,y)为圆心按照指定的半径画出一个圆。【原型】void far circle(int x,int y,int radius)【位置】graphics.h 【参见】arc cleardevice 【功能】清除图形画面。 【原型】void far cleardevice(void)【位置】graphics.h 【参见】clearviewport clearviewport Turbo C函数 【功能】清除当前可视区域。【原型】clearviewport(void)【位置】graphics.h 【参见】setviewport,cleardevice closegraph 【功能】关闭图形系统。 【原型】void far closegraph(void)【位置】graphics.h 【参见】initgraph detecgraph 【功能】通过检查硬件确定使用的图形驱动程序和模式。 【原型】void far detectgraph(int far *graphdriver,int far *graphmode)【位置】graphics.h 【参见】initgraph,graphresult drawpoly 【功能】画出一个多边形的轮廓。 【原型】void far drawpoly(int numpoints,int far polypoints[])【位置】graphics.h 【说明】polypoints中包括一共numpoints对数值。其中每一对都给出了多边形中一个顶点的x和y值。 【参见】fillpoly ellipse 【功能】画出一条椭圆形的圆弧。 【原型】void far ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius)【位置】graphics.h 【说明】中心点在(x,y),stangle和endangle表示一角度为单位的起始角和终止角。Xradius和yradius表示水平轴和垂直轴。【参见】arc,circle,fillellipse fillellipose 【功能】画出椭圆形圆弧,并填充。 【原型】void far fillllipse(int x,int y,int xradius,int yradius)【位置】graphics.h 【说明】使用(x,y)作为中心点,然后使用当前的填充模式填充圆弧。Xradius和yradius表示水平轴和垂直轴。 【参见】arc,circle,ellipse,pieslice fillpoly 【功能】画出一个多边形,并填充。 【原型】void far fillpoly(int numpoints,int far polypoints[])【位置】graphics.h 【说明】polypoints中包含有numpoints对数值。其中每一对给出了多边形一个顶点的x值和y值。【参见】drawpoly,fill_patterns,floodfill,graphresult,setfillstyle floodfill 【功能】填充一个有界区域范围。 【原型】void far floodfill(int x,int y,int border)【位置】graphics.h 【参见】drawpoly,fillpoly,fill_patterns,graphresult,setfillstyle Turbo C函数 getarccoords 【功能】得到最后一次调用arc的坐标值。 【原型】void far getaerccoords(struct arccoordstype far *arccoords)【位置】graphics.h 【参见】arc getaspectratio 【功能】得到当前图形模式的纵横比。 【原型】void far getaspectratio(int far *xasp,int far *yasp)【位置】graphics.h 【说明】are及类似函数使用纵横比令圆圈更加圆,而不会像椭圆。Yasp应当为10000。当象素为 【原型】int far getbkcolor(void)【位置】graphics.h 【参见】setbkcolor,getcolor,getpalette getcolor 【功能】返回当前画笔的颜色。【原型】int far getcolor(void)【位置】graphics.h 【参见】getbkcolor,setcolor,getmaxcolor,getpalette getdefaultpalette 【功能】返回调色板定义结构。 【原型】struct palettetype *far getdefaultpalette(void)【位置】graphics.h 【说明】返回一个指针,指向调用initgraph初始化时,当前驱动程序的默认调色板结构。【参见】getpalette,initgraph getdrivername 【功能】返回一个指针,指向当前图形驱动程序的名称。【原型】char *far getdrivername(void)【位置】graphics.h 【说明】返回的指针指向标识当前驱动器程序的字符串,从而可以探测到硬件适配器。【参见】initgraph getfillpattern 【功能】将用户定义的填充模式复制到内存中。 【原型】void far getfillpattern(char far *pattern)【位置】graphics.h 【参见】getfillsettings,setfillpattern,fill_patterns getfillsettings 【功能】得到当前填充模式及其颜色的有关信息。 【原型】void far getfillsettings(struct fillsettingstype far *fillinfo)【位置】graphics.h 【参见】floodfill, fillpoly, setfillstyple, pieslice, setfillpattern, bar3d, bar, getfillpattern getgraphmode Turbo C函数 【功能】返回当前图形模式。 【原型】int far getgraphmode(void)【位置】graphics.h 【说明】必须先调用initgraph或者setgraphmode。【参见】setmoderange,restorectrtmode getmage 【功能】将制定区域的位图保存到内存中。 【原型】void far getimage(int left,int top,int right,int bottom,void far *bitmap)【位置】graphics.h 【参见】imagesize,putimage getlinesettings 【功能】得到当前的直线样式、模式和粗细。 【原型】void far getlinesettings(struct linesettingstype far *lineinfo)【位置】graphics.h 【参见】setlinestyle getmaxcolor 【功能】返回最大颜色值。 【原型】int far getmaxcolor(void)【位置】graphics.h 【参见】getbcolor,getpalette,getcolor,setcolor getmaxmode 【功能】返回当前驱动程序的最大图形模式号。【原型】int far getmaxmode(void)【位置】graphics.h 【说明】getmaxmode可以得到当前装载的图形驱动程序的最大模式号。适用于所有驱动程序—包括Borland驱动程序及其他驱动程序。【参见】getmoderange getmaxx 【功能】返回画面坐标的最大x值。【原型】int far getmaxx(void)【位置】graphics.h 【参见】getx getmaxy 【功能】返回画面坐标的最大y值。【原型】int far getmaxy(void)【位置】graphics.h 【参见】getx getmodename 【功能】返回指针,指向图形模式的名称。 【原型】char *far getmodename(int mode_number)【位置】graphics.h 【说明】返回的指针指向mode_number指定模式的名称(字符串)。【参见】getmaxmode,getmoderange getmoderange 【功能】得到指定图形驱动器的模式范围。 【原型】void far getmoderange(int graphdriver,int far *lomode,int far *himode) Turbo C函数 【位置】graphics.h 【参见】initgraph,getmaxmode,setgraphmode,getgraphmode.getpalette 【功能】得到当前调色板的有关信息。 【原型】void far getpalette(struct palettetype far *palette)【位置】graphics.h 【参见】setpalette,setallpalette,getbkcolor,getdefaultpalette,getcolor getpalettesize 【功能】返回调色板表的大小。 【原型】int far getpalettesize(void)【位置】graphics.h 【说明】getpalettesize返回当前图形驱动程序模式允许的调色板条目的数目。【参见】setpalette,setallpalette getpixel 【功能】得到某个指定向素的颜色。 【原型】unsigned far getpixel(int x,int y)【位置】graphics.h 【参见】putpixel,getimage gettextsettings 【功能】得到当前图形文字字体的有关信息。 【原型】void far gettextsettings(struct textsettingstype far *texttypeinfo)【位置】graphics.h 【参见】outtext, outtextxy, textheight, textwidth, settextjustify, settextsyle, registerbgifont getviewsettings 【功能】得到当前视窗的有关信息。 【原型】void far getviewsettings(struct viewporttype far *viewport)【位置】graphics.h 【参见】setviewport,clearviewport getx 【功能】返回当前位置的x坐标。【原型】int far getx(void)【位置】graphics.h 【说明】返回数值与视窗相关。 【参见】gety,moveto,getviewsettings gety 【功能】返回当前位置的y坐标。【原型】int far gety(void)【位置】graphics.h 【说明】返回数值与视窗相关。 【参见】getx,moveto,getviewsettings graphdefaults 【功能】将所有图形设置重值为默认值。【原型】void far graphdefaults(void)【位置】graphics.h 【参见】initgraph,setgraphmode Turbo C函数 grapherrormsg 【功能】返回一个指针,指向错误消息字符串。【原型】char *far grapherrormsg(int errorcode)【位置】graphics.h 【说明】返回指针指向的字符串与graphresult返回值相关。【参见】graphresult _graphfreemem 【功能】用户申请重新分配图形内存。 【原型】void far _graphfreemem(void far *ptr,unsigned size)【位置】graphics.h 【说明】图形函数库中的程序调用该函数来释放内存。可以自己使用_graphgetmem和_graphfreemem函数来控制内存分配。【参见】_graphgetmem _gaphetmem 【功能】用户申请重新分配图形内存。 【原型】void far *far _graphgetmem(unsigned size)【位置】graphics.h 【说明】图形函数库中的程序调用该函数来释放内存。可以自己使用_graphgetmem和_graphfreemem函数来控制内存分配。【参见】_graphfreemem graphresult 【功能】返回最后一次失败图形操作的错误代码。【原型】int far graphresult(void)【位置】graphics.h 【说明】返回最后一次报告错误图形的错误代码,并且将错误等级重置为grOK。【参见】grapherrormsg imagesize 【功能】返回存储位图所需的字节数。 【原型】unsigned far imagesize(int left,int top,int right,int bottom)【位置】graphics.h 【说明】如果选定图形所需的大小大于等于64k-1个字节,则返回0xFFFF。【参见】getimage,putimage initgraph 【功能】初始化图形系统。 【原型】void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver)【位置】graphics.h 【参见】getgraphmode , closegraph , detectgraph , _graphgetmem , getdrivername , restorecrtmode,setgraphbufsize,registerbgidriver,graphresult,installuserdriver installuserdriver 【功能】按照设备驱动程序。 【原型】int far installuserdriver(char far *name,int huge(*detect)(void))【位置】graphics.h 【说明】name表示设备驱动程序的文件名称(*.bgi),detect指向initgraph使用autodetect选项调用的函数。 【参见】initgraph,registerbgidriver Turbo C函数 installuserfont 【功能】装载一个字体文件。 【原型】int far installuserfont(char far *name)【位置】graphics.h 【说明】name表示图形函数还没有识别的字体文件(扩展名为.chr)DOS文件名称。installuserfont返回一个字体ID号。选择新字体时,使用该ID号调用settextstyle。【参见】settextstyle line 【功能】在两个指定点之间画出一条直线。【原型】lint(int x1,int y1,int x2,int y2)【位置】graphics.h 【说明】使用当前颜色、线条样式和线条粗细从(x1,y1)画一条直线到(x2,y2)。【参见】lineto,linerel,setcolor,getlinesettings linerel 【功能】从当前位置(CP)画一条一直长度的直线。【原型】linerel(int dx,int dy)【位置】graphics.h 【说明】使用当前颜色、线条样式和线条粗细。 【参见】line,lineto,setcolor,getcolor,getlinesettings lineto 【功能】从当前位置(CP)到(x,y)之间画一条直线。【原型】void far lineto(int x,int y)【位置】graphics.h 【参见】line,linerel,setcolor,getlinesettings,setwritemode moverel 【功能】从当前位置(CP)移动一段距离。【原型】moverel(int dx,int dy)【位置】graphics.h 【参见】moveto moveto 【功能】从当前位置(CP)移动到(x,y)点。【原型】void far moveto(int x,int y)【位置】graphics.h 【参见】moverel outtext 【功能】在视窗中(图形模式)显示一个字符串。【原型】void far outtext(char far *textstring)【位置】graphics.h 【参见】gettextsettings,texthright,textwidth,outtextxy outtextxy 【功能】在指定位置(图形模式)发送一个字符串。 【原型】void far outtextxy(int x,int y,char far *textstring)【位置】graphics.h 【参见】gettextsettings,textherght,textwidth,outtext pieslice 【功能】画出扇形区并加以填充。 Turbo C函数 【原型】void far pieslice(int x,int y,int stangle,int endangle,int radius)【位置】graphics.h 【参见】setfillstyle,sector,fill_patterns,fillellipse,graphresult putimage 【功能】在屏幕上输出一副位图。 【原型】void far putimage(int left,int top,void far *bitmap,int top)【位置】graphics.h 【说明】bitmap指向一副位图,该位图通常由getimage函数创建。Op的数值说明如何在(left,top)点将图像与区域中的当前内容结合起来。【参见】getimage putpixel 【功能】在指定点上画一个像素。 【原型】void far putpixel(int x,int y,int pixelcolor)【位置】graphics.h 【参见】getpixel,putimage rectangle 【功能】画出一个矩形(图形模式)。 【原型】void far rectangle(int left,int top,int right,int bottom)【位置】graphics.h 【说明】使用当前线条样式、线条粗细和颜色。【参见】bar,setlinestyle,setcolor registerbgidriver 【功能】注册链入的图形驱动程序。 【原型】int registerbgidriver(void(*driver)(void))【位置】graphics.h 【说明】通知图形系统链接时设备驱动程序指向的参数和驱动程序。【参见】initgraph,registerbgifont,installuserdriver registerbgifont 【功能】注册链入的字体代码。 【原型】int registerbgifont(void(*font)(void))【位置】graphics.h 【说明】通知图形系统连接时指向的字体。【参见】initgraph,registerbgidriver restorecrtmode 【功能】将屏幕模式恢复到前一次initgraph的设置。【原型】void far restorecrtmode(void)【位置】graphics.h 【参见】initgraph,setgraphmode sector 【功能】画出椭圆形的扇形区并加以填充。 【原型】void far sector(int x,int y,int stangle,int endangle,int xradius,int yradius)【位置】graphics.h 【说明】x和y定义出中心点,stangle和endangle则定义起始和终止角。Xradius和yradius表示水平和垂直半径。 【参见】pieslice,setfillstyle setactivepage 26 Turbo C函数 【功能】为图形输出设置活动页面。 【原型】void far setactivepage(int page)【位置】graphics.h 【说明】后续的图形输出就指向该显示页面。该页面可能不是实际显示的可视页面。【参见】setvisualpage setallpalette 【功能】将所有调色板的颜色改为指定颜色。 【原型】void far setallpalette(struct palettetype far *palette)【位置】graphics.h 【参见】setpalette,getpalettesize,getpalette,setcolor,setbkcolor,graphresult setaspectratio 【功能】设置图形模式的纵横比。【原型】void far setaspectratio 【位置】graphics.h 【说明】are及类似函数使用纵横比令圆圈更加圆,而不会像椭圆。yasp应当为10000。当象素为 【参见】setpalette,setcolor,getbkcolor setcolor 【功能】设置当前画笔颜色。 【原型】void far setcolor(int color)【位置】graphics.h 【参见】getcolor,setbkcolor,setpalette,graphresult setfillpattern 【功能】选择一个用户自定义的填充模式。 【原型】void far setfillpattern(char far *upattern,int color)【位置】graphics.h 【说明】upattern指向一个8字节的区域,其中定义了一个8*8位的模式。【参见】fill_patterns,getfillpattern,getfillsettings,setfillstyle setfillstyle 【功能】设置填充模式和颜色。 【原型】void far setfillstype(int pattern,int color)【位置】dos.h 【参见】get,fillstype setgraphbufsize 【功能】改变内部图形缓冲区的大小。 【原型】unsigned far setgraphbufsize(unsigned bufsize)【位置】graphics.h 【说明】必须在调用initgraph之前调用该函数。【参见】initgraph,_graphgetmem setgraphmode 【功能】系统设置为图形模式,同时清屏。 Turbo C函数 【原型】void far setgraphmode(int mode)【位置】graphics.h 【参见】initgraph,getgraphmode,restorecrtmode,graphresult setlinestyle 【功能】设置当前的线条样式、宽度或者模式。 【原型】void far setlinestyle(int linestyle,unsigned upattern,int thickness)【位置】graphics.h 【说明】可以设置使用line,lineto,tectangle,drawpoly,aec,circle,ellipse,pieslice等函数画的所有线条样式。 【参见】getlinesettings,graphresult setpalette 【功能】改变一种调色板颜色。 【原型】void far setpalette(int colornum,int color)【位置】graphics.h 【参见】getpalette, graphresult, setallpalette, getpalettesize, setcolor, setrgbcolor, setbkcolor setrgbcolor 【功能】为VGA和IBM-8514驱动程序设置调色板条目。 【原型】void far setrgbcolor(int colornum,int red,int green,int blue)【位置】graphics.h 【说明】colornum表示需要设置的调色板条目,red、green和blue用来定义颜色。【参见】setpalette,setrgbpalette setrgbpalette 【功能】为IBM-8514图形卡定义颜色 【原型】void far setrgbpalette(int colornum,int red,int green,int blue)【位置】graphics.h 【说明】colornum表示需要载入的调色板条目,从0~255之间的数字,red、green和blue负责定义颜色。这些数值仅仅使用低位字节,而且只有最重要的6位载入调色板。【参见】setrgbcolor,setpalette settextjustify 【功能】设置图形模式下的文本对齐方式。 【原型】void far settextjustify(int horiz,int vert)【位置】graphics.h 【说明】该函数影响outtext等函数输出的文本,是文本在水平和垂直方向对齐。settextstyle 【功能】设置当前文本属性。 【原型】void far settextstyle(int font,int direction,int charsize)【位置】graphics.h 【参见】settextjustify,installuserfont,gettextsettings,graphresult setusercharsize 【功能】用户为渐入字符自定义的字符放大因子。 【原型】void far setuserchasize(int multix,int divx,int multy,int divy)【位置】graphics.h 【参见】gettextsettings,graphresult setviewport 【功能】设置图形输出的当前视口。 Turbo C函数 【原型】void far setviewport(int left,int top,int right,int bottom,int clip)【位置】graphics.h 【参见】getviewsettings,graphresult setvisualpage 【功能】设置可视图形页码。 【原型】void far setvisualpage(int page)【位置】graphics.h 【说明】有些显示适配器存在多个内存页面,可视页面是真正在屏幕上显示的页面。图形输出函数将输出写入由setactivepage定义的活动页面中。【参见】setactivepage,graphresult setwritemode 【功能】设置图形画线模式。 【原型】void far setwritemode(int mode)【位置】graphics.h 【说明】如果mode为0,则线条覆盖屏幕上当前的内容。如果mode为1,那么线条向素和已经在屏幕上的象素之间执行一个异域操作(XOR)。【参见】lingto textheight 【功能】以象素位单位,返回一个字符串的高度。【原型】int far textheight(char far *textstring)【位置】graphics.h 【说明】textwidth与图形函数一起使用,例如outtext 【参见】gettextsettings,textwidth,outtext textwidth 【功能】以象素位单位,返回一个字符串的宽度。【原型】int far textwidth(char far *textstring)【位置】graphics.h 【说明】textwidth与图形函数一起使用,例如outtext 【参见】gettextsettings,textheight,outtext IO.H access 【功能】 确定文件是否可以访问。 【原型】int access(const char *filename,int amode)【位置】io.h 【说明】amode=0检查文件是否存在 amode=2检查文件是否有写权限 如果允许执行请求的访问,则返回0;否则返回数值-1,并且设置errno _chmod 【功能】改变访问模式。 【原型】int _chmod(const char *filename,int func[,int attrib])【位置】io.h 【说明】如果func等于0,则_chmod返回文件属性;如果func等于1,则设置属性。成功完成之后,_chmod返回文件属性;否则返回数值-1,并设置errno 【参见】chmod chomd 【功能】改变访问模式。 Turbo C函数 【原型】int chmod(const char *filename,int amode)【位置】io.h 【说明】成功改变文件访问模式之后,chmode返回0;否则chmode返回数值-1 【参见】_chmod chsize 【功能】改变文件大小。 【原型】int chsize(int handle,long size)【位置】io.h 【说明】成功则chsize返回0,失败则返回-1,同时设置errno 【参见】cheat fopen _close 【功能】关闭文件句柄。 【原型】int _close(int handle)【位置】io.h 【说明】成功完成之后,close返回0;否则返回-1,同时设置errno 【参见】close close 【功能】关闭文件句柄。 【原型】int close(int handle)【位置】io.h 【说明】成功完成之后,close返回0;否则返回-1,同时设置errno 【参见】_close _creat 【功能】创建一个新文件,或者覆盖一个旧文件。【原型】int _creat(const char *path,int attrib)【位置】io.h 【说明】creat按照_fmode规定的模式打开文件。_creat则总是按照二进制模式打开文件。成功完成之后,返回新文件句柄;否则返回-1,同时设置errno 【参见】creat creat 【功能】创建一个新文件,或者覆盖一个旧文件。【原型】int creat(const char *path,int attrib)【位置】io.h 【说明】creat按照_fmode规定的模式打开文件。_creat则总是按照二进制模式打开文件。成功完成之后,返回新文件句柄;否则返回-1,同时设置errno 【参见】_creat creatnew 【功能】创建一个新文件。 【原型】int creatnew(const char *path,int attrib)【位置】io.h 【说明】creatnew与_creat的功能基本一致,但是当文件已经存在时,creatnew将返回一个错误。该函数使用于MS DOS 3.0或者更新的版本 creattemp 【功能】在文件名指定的目录中创建一个文件。 【原型】int creattemp(const char *path,int attrib)【位置】io.h Turbo C函数 【说明】该函数与_creat类似,但是文件名称为路径名称,必须以结束。文件名称中应当包括完整的文件名。该函数使用于MS DOS 3.0或者更新的版本 【参见】creat,_creat dup 【功能】复制一个文件句柄。【原型】int dup(int handle)【位置】io.h 【说明】成功完成之后,dup返回一个新文件的句柄;否则dup返回-1,同时设置errno 【参见】dup2 dup2 【功能】复制一个文件句柄oldhandle,新文件句柄为newhandle。【原型】int dup2(int oldhandle,int newhandle)【位置】io.h 【说明】成功返回0,错误返回-1 【参见】dup eof 【功能】检查文件结尾标志。【原型】int eof(int handle)【位置】io.h 【说明】该函数的返回值及其含义如下: 返回值 含义 1 文件结束 0 文件没有结束-1 出错,设置errno 【参见】ferror,perror,EOF filelength 【功能】得到文件大小的字节数。 【原型】long filelength(int handle)【位置】io.h 【说明】出现错误时返回-1,同时设置errno 【参见】open,lseek gettime 【功能】得到文件的日期和时间。 【原型】int gettime(int handle,struct ftime *fftimep)【位置】io.h 【说明】成功返回0,错误则返回-1,同时设置errno 【参见】setftime,open loctl 【功能】控制I/O设备。 【原型】int ioctl(int handle,int func[,void *argdx,int argcx])【位置】io.h 【说明】func为0或者1时,返回值表示设备信息(IOCTL调用DX)。Func数值从2到5时,返回值为实际传递的字节数。Func数值为6或者7时,返回值为设备状态。 在任何情况下如果出现错误,则返回数值-1,同时设置errno。isatty Turbo C函数 【功能】检查设备类型。 【原型】int isatty(int handle)【位置】io.h 【说明】如果为字符设备,则isatty返回一个非0整数。lock 【功能】设置文件共享锁定,控制并发的文件访问。 【原型】int lock(int handle,long offset,long length)【位置】io.h 【说明】防止另一个程序读写访问从offset地址开始length个字节长的区域。调用成功返回0,调用失败返回-1。【参见】open,unlock lseek 【功能】移动读/写文件指针。 【原型】long lseek(int handle,long offset,int fromwhere)【位置】io.h 【说明】返回从文件起始位置开始新的文件位置,以字节为单位。错误返回01L,同时设置errno。【参见】fopen,fseek,ftell,gets,setbuf,ungetc _open 【功能】打开文件进行读写。 【原型】int _open(const char *filename,int oflags)【位置】io.h 【说明】成功完成之后,_open返回一个文件句柄,否则返回-1。【参见】open open 【功能】打开一个文件进行读写。 【原型】int open(const char *pathname,int access[,unsigned mode])【位置】io.h 【说明】成功完成之后,open返回一个文件句柄,否则返回-1,同时设置errno。【参见】close,creat,_creat,dup,fopen,lseek,_open,read,sopen,write _read 【功能】从文件中读取。 【原型】int _read(int handle,void *buf,unsigned len)【位置】io.h 【说明】返回读入的字节数,遇到文件结尾返回0,出现错误时返回-1,同时设置errno。【参见】read,_open,_write read 【功能】从文件中读取。 【原型】int read(int handle,void *buf,unsigned len)【位置】io.h 【说明】成功完成之后,返回一个整数说明缓存区中放置的字节数,如果文件在文本模式下打开,read不会计算返回读取字节数中的carriage或者Ctrl+Z字符。出现错误时返回-1,同时设置errno。【参见】_read,open,write setftime 【功能】获得文件的日期和时间。 【原型】int settime(int handle,struct ftime *ftimep)【位置】io.h Turbo C函数 【说明】成功返回0,否则返回-1。【参见】gettime setmode 【功能】设置一个打开文件的模式。 【原型】int setmode(int handle,int amode)【位置】io.h 【说明】成功返回0,否则返回-1。【参见】open,creat sopen 【宏原型】sopen(path,access,shflag,mode)【位置】io.h 【说明】在共享模式下打开文件。可以于旧版本的Turbo C和其他编译程序兼容。【参见】open tell 【功能】得到文件指针的当前位置。【原型】long tell(int handle)【位置】io.h 【说明】返回当前文件指针的位置,出错则返回-1。【参见】fseek unlink 【功能】删除一个文件。 【原型】int unlink(const char *filename)【位置】io.h 【说明】如果filename指定的文件属性为只读,则unlink操作失败。首先需要调用chmod函数改变文件属性。 成功返回0,错误返回-1。【参见】chmod,remove unlock 【功能】释放文件共享的锁定,控制并发访问。 【原型】int unlock(int handle,long offset,long length)【位置】io.h 【说明】成功返回0,错误返回-1。【参见】lock _write 【功能】写入一个文件。 【原型】int _weite(int handle,void *buf,unsigned nbyte)【位置】io.h 【说明】返回写入的字节数目,出现错误则返回-1。【参见】write write 【功能】写入一个文件。 【原型】int weite(int handle,void *buf,unsigned nbyte)【位置】io.h 【说明】返回写入的字节数目,出现错误则返回-1。【参见】creat,open,read,_write,lseek MATH.H Turbo C函数 abs 【功能】得到一个整数的绝对值,abs(x)中的x表示一个int值。【原型】int abs(int x)【位置】math.h,stdlib.h acos 【功能】反余弦函数。 【原型】double acos(double x)【位置】math.h,stdlib.h 【说明】返回值从0到π。【参见】trig,hyperb asin 【功能】反正弦函数。 【原型】double asin(double x)【位置】math.h 【说明】返回值范围从-π/2到π/2 【参见】trig,hyperb stan 【功能】反正切函数。 【原型】double atan(double x)【位置】math.h 【说明】返回值范围从-π/2到π/2 【参见】trig,hyperb atan2 【功能】y/x的反正弦函数。 【原型】double atan2(double y,double x)【位置】math.h 【说明】返回值范围从-π到π 【参见】trig,hyperb atof 【功能】将一个字符串转换成浮点数。【原型】double atof(const char *s)【位置】math.h 【说明】返回s经过转换之后的值,如果s不能转换则返回0。【参见】atoi,atol,ecvt,sscanf,strtod cabs 【功能】得到一个复数的绝对值。 【原型】double cabs(struct complex znum)【位置】math.h 【说明】以双精度返回znum的绝对值。【参见】abs,fabs,labs ceil 【功能】向上取整函数。 【原型】double ceil(double x)【位置】math.h 【说明】返回一个大于等于x的最小整数。【参见】floor 34 Turbo C函数 cos 【功能】余弦函数。 【原型】double cos(double x)【位置】math.h 【说明】x表示弧度,返回值范围从-1到1。【参见】trig,hyperb cosh 【功能】双曲余弦函数。 【原型】double cosh(double x)【位置】math.h 【参见】hyperb,trig exp 【功能】计算e的x次方。【原型】double exp(double x)【位置】math.h 【参见】frexp,ldexp,log,pow fabs 【功能】得到一个浮点数的绝对值。【原型】double fabs(double x)【位置】math.h 【参见】abs,cabs,labs floor 【功能】向下取整函数。 【原型】double floor(double x)【位置】math.h 【说明】返回小于或等于x的最大整数。【参见】ceil fmod 【功能】计算x/y的余数,也就是x对y求模。【原型】double fmod(double x,double y)【位置】math.h 【参见】modf frexp 【功能】将一个双精度数分解成为尾数和指数。 【原型】double frexp(double value,int *exponent)【位置】math.h 【说明】计算出x(x<1)和n,并且value=x*(2**n)。返回尾数x,并且令*exponent指向n。【参见】exp hypot 【功能】计算直角三角形的斜边。 【原型】double hypot(double x,double y)【位置】math.h labs 【功能】长整数的绝对值。【原型】long labs(long x)【位置】math.h,stdlib.h Turbo C函数 【参见】abs,cabs ldexp 【功能】计算value乘以2为底的exp次幂得到的数值。【原型】double ldexp(double calue,int exp)【位置】math.h 【说明】返回值x=value*pow(2,exp)【参见】exp,frexp log 【功能】对数函数ln(x) 【原型】double log(double x)【位置】math.h 【参见】exp log10 【功能】对数函数log(10x) 【原型】double log10(double x)【位置】math.h 【参见】exp matherr 【功能】用户可修改的数学错误处理程序。【原型】int matherr(struct exception *e)【位置】math.h 【说明】可以运用自己的matherr函数控制由math函数库探测器的错误句柄。 Matherr应当返回一个非0值来说明可以解决问题,否则返回0。也可以更改返回值e,通过初始化调用方的接口返回。modf 【功能】将数字分离成为整数部分和分数部分。【原型】double modf(double x,double *ipart)【位置】math.h 【说明】将参数值分解成两部分:整数部分和分数部分。将整数部分保存在*ipart中,返回分数部分。poly 【功能】根据参数生成一个多项式。 【原型】double poly(double x,int degree,double coeffs[])【位置】math.h 【说明】在x中返回一个多项式的数值,次数为n,系数为coeffs[0],…coeffs[n]。【参见】 pow 【功能】幂函数,x的y次幂。 【原型】double pow(double x,double y)【位置】math.h pow10 【功能】幂函数,10的p次幂。【原型】double pow10(int p)【位置】math.h sin 【功能】正弦函数。 Turbo C函数 【原型】double sin(double x)【位置】math.hmath.h 【说明】x表示弧度,返回值范围为-1到1。【参见】trig sinh 【功能】双曲正弦函数。 【原型】double sinh(double x)【位置】math.h 【参见】hyperb,trig sqrt 【功能】计算平方根。 【原型】double sqrt(double x)【位置】math.h 【说明】返回x的平方根。tan 【功能】正切函数。 【原型】double tan(double x)【位置】math.h 【说明】x表示弧度,返回x的正切值。【参见】trig,hyperb tanh 【功能】双曲正切函数。 【原型】double tanh(double x)【位置】math.h 【说明】返回x的双曲正切值。【参见】typerb,trig MEM.H memccpy 【功能】从scr位置拷贝n个字节到dest位置。 【原型】*memccpy(void *dest,const void *src,int c,size_t n)【位置】mem.h,string.h 【说明】该函数拷贝一个与c匹配的字节之后将停止操作,返回一个指针,指向dest位置上c之后的字节;否则将返回NULL。memchr 【功能】在数组s的前n个字节中查找字符c。 【原型】void *memchr(const void *s,int c,size_t n)【位置】mem.h,string.h 【说明】返回一个指针,指向s中出现的第一个c。如果在数组s中没有出现c,则返回NULL。memcmp 【功能】比较两个长度均为n的字符串s1和s2。 【原型】int memcmp(const void *s1,const void *s2,size_t n)【位置】mem.h,string.h 【说明】如果s1小于s2,返回一个小于0的数值,如果s1等于s2则返回一个0值,如果s1大于s2则返回一个大于0的数值。memcpy 【功能】从src位置拷贝n个字节到dest位置。 Turbo C函数 【原型】*memcpy(void *dest,const void *src,size_t n)【位置】mem.h,string.h 【说明】返回dest。memicmp 【功能】比较s1和s2的前n个字节,忽略大小写差异。 【原型】int memicmp(const void *s1,const void *s2,size_t n)【位置】mem.h,string.h 【说明】如果s1小于s2,返回一个小于0的数值,如果s1等于s2则返回一个0值,如果s1大于s2则返回一个大于0的数值。memmove 【功能】从src拷贝n个字节到dest。 【原型】*memmove(void *dest,const void *src,size_t n)【位置】mem.h,string.h 【说明】返回s。memset 【功能】将s中的n个字节设置为c。 【原型】void *memset(void *s,int c,size_t n)【位置】mem.h,string.h 【说明】返回s。movedata 【功能】拷贝字节。 【原型】void movedata(unsigned srcset,unsigned crcoff,unsigned destseg,unsigned destoff,size_t n) 【位置】mem.h,string.h 【说明】从sreseg:srcoff拷贝n个字节到destseg:destseg:destoff。【参见】FP_OFF,memcpy,segread movmem 【功能】从src移动一定长度的字节到dest。 【原型】void movmem(void *src,void *dest,unsigned length)【位置】mem.h vsetmem 【功能】将某个内存范围设置为value。 【原型】void setmem(void *dest,int len,char value)【位置】mem.h,string.h 【参见】memset,strest PROCESS.H abort 【功能】异常终止某个进程。【原型】void abort(void)【位置】stdlib.h 【参见】atexit,assert,exit exec 【功能】载入并运行另外一个程序。 【原型】int execl(char *path,char *arg0,…,NULL) int execle(char *path,char *arg0,…,NULL,char **envp) int execlp(char *path,char *arg0,…) Turbo C函数 int execlep(char *path,char *arg0,…,NULL,char **envp) int execv(char *path,char *argv[]) int execve(char *path,char *argv[],char **envp) int execvp(char *path,char *argv[]) int execvp(char *path,char *argv[],char **envp)【位置】process.h 【说明】如果成功则exec函数不返回任何值。如果出现错误则exec函数返回-1,并且设置errno 【参见】spawn,searchpath,system exit 【功能】终止程序 【原型】void exit(int status)【位置】stdlib.h,process.h 【说明】终止程序之前,清空输出缓存,关闭文件,并且退出调用的函数 【参见】abort,atexit,_exit spawn 【功能】spawn函数允许程序运行其他文件,并且在文件运行结束之后返回控制权。成功执行之后,返回子进程的退出状态(0 表示正常终止)。如果某次子调用使用非0参数退出,则退出状态设置为一个非0值。 如果进程没有成功执行,则spawn函数将返回-1。 在使用如下这些spawn函数之前,首先需要了解将会出现多少个不同的参数。【原型】int spawnl(int mode,char *path,char *arg0,…,NULL) int spawnle(int mode,char *path,char *arg0,…,NULL ,char **env) int spawnlp(int mode,char *path,char *arg0,…,NULL) int spawnlpe(int mode,char *path,char *arg0,…,NULL ,char **env) int spawnv(int mode,char *path,char *arg[]) int spawnve(int mode,char *path,char *arg[],char **env) int spawnvp(int mode,char *path,char *arg[]) int spawnvpe(int mode,char *path,char *arg[],char **env)【位置】process.h 【说明】每个spawn函数的结尾字母表明其使用哪一种变形。P 在DOS路径中查找子进程。L 传递固定长度的参数列表。V 传递可改变长度的参数列表。 E 传递一个env指针,允许改变子进程的环境。【参见】abort,atexit,exit,exec.system system 【功能】执行一个MS DOS 命令。 【原型】int system(const char *command)【位置】process.h,stdlib.h 【说明】command可以执行一条内部DOS命令,例如DIR、一个.COM或者.EXE程序文件,或者一个.BAT批处理文件。成功返回0,失败返回-1 【参见】searchpath SETJMP.H longjmp 【功能】执行非本地的跳转。 【原型】void longjmp(jmp_buf jmpb,int retval) Turbo C函数 【位置】setjmp.h 【说明】将控制权传递给调用setjmp(初始化jmpb)的语句。该点将继续向下执行,假设setjmp返回在retval中定义的数值。longjmp不能返回数值0,如果在retval中返回0,则longjmp将返回1 【参见】ctrlbrk,signal setjmp 【功能】设置非本地跳转。 【原型】int setjmp(jmp_buf jmpb)【位置】setjmp.h 【说明】保存类似寄存器数值的相关信息,以便于longjmp函数可以将控制权返回给调用setjmp之后的语句。首次调用时返回0 【参见】longjmp SIGNAL.H raise 【功能】向执行程序发送一个信号。【原型】int raise(int sig)【位置】signal.h 【说明】程序可以使用raise给自己发送信号,执行由该信号类型设置的句并(或者默认句柄)。Sig的信号类型在signal.h中定义。【参见】signal signal 【功能】设置某个信号的句柄。 【原型】typedef void(*sigfun)(int subcode)int signal(int sig,sigfun fname)【位置】signal.h 【说明】当产生sig类型的信号时,调用fname指向的函数。信号类型在signal.h中定义。当出现例外条件,或者调用raise时才会产生信号。【参见】raise STDIO.H clearerr 【功能】重设错误标识。 【原型】void clearerr(FILE *fp)【位置】stdio.h 【说明】重设流fp中的错误标识和文件结尾标识。【参见】eof,ferror,feof,perror fclose 【功能】关闭流。 【原型】int fclose(FILE *fp)【位置】stdio.h 【说明】成功返回0,如果出现任何错误则返回EOF。【参见】fflush,fcloseall,fopen,flushall,close fcloseall 【功能】关闭所有打开的流。【原型】int fcloseall(void)【位置】stdio.h 【说明】返回关闭的总数目,如果出现任何错误则返回EOF。 Turbo C函数 【参见】fclose,flushall fdopen 【功能】将某个流和某个文件句柄相关联。 【原型】FILE *fdopen(int handle,char *type)【位置】stdio.h 【说明】返回一个指针,指向最近打开的流,如果出现任何错误则返回NULL。【参见】fopen,open feof(f)【功能】如果流f出现错误则返回非0值。【原型】int feof(FILE *stream)【位置】stdio.h 【参见】clearerr,eof ferror(f)【功能】如果流f出现错误则返回非0值。【原型】int ferror(FILE *stream)【位置】stdio.h 【参见】clearerr,fopen,eof fflush 【功能】清空某个流。 【原型】int fflush(FILE *fp)【位置】stdio.h 【说明】如果出现任何错误则返回EOF。【参见】flushall,fclose fgetc 【功能】从流中得到字符。【原型】int fgetc(FILE *fp)【位置】stdio.h 【说明】该函数是宏getc的函数版本。【参见】fgetchar,fputc fgetchar 【功能】从stdin中得到一个字符。【原型】int fgetchar(void)【位置】stdio.h 【说明】函数是宏getchar的函数版本。fgetpos 【功能】得到文件指针的当前位置。 【原型】int fgetpos(FILE *fp,fpos_t *pos)【位置】stdio.h 【说明】*pos中保存的位置可以传递给fsetpos,从而设置文件指针。成功返回0,否则返回一个非0值。 【参见】fseek,fsetpos,ftell,tell fgets 【功能】从流中得到一个字符串。 【原型】char *fgets(char *s,int n,FILE *fp)【位置】stdio.h 【说明】成功则返回目的字符串s,错误或者遇到文件结尾则返回NULL。 Turbo C函数 【参见】fputs,gets fileno(f)【功能】返回与流f相关联的文件句柄。【宏原型】int fileno(FILE *stream)【位置】stdio.h flushall 【功能】清空所有打开的流。【原型】flushall(void)【位置】stdio.h 【说明】清空输入流的缓存区和输出流文件的输出缓存。返回一个整数,表示打开的输入输出流的数目。 【参见】fflush,fclose,fcloseall fopen 【功能】打开一个流。 【原型】FILE *fopen(const char *filename,const char *mode)【位置】stdio.h 【说明】如果成功则返回一个指针,指向最近打开的流,否则返回NULL。【参见】fclose,creat,open,dup,ferror,_fmode,rewind,setbuf,setmode fprintf 【功能】向流发送格式化输出。 【原型】int fprintf(FILE *fp,const char *format,…)【位置】stdio.h 【说明】使用格式说明符与printf相同,但是frintf向指定流fp发送输出,fprintf返回输出字节数。出现错误则返回EOF。【参见】putc,fscanf fputc 【功能】向某个流输出一个字符。【原型】int fputc(int c,FILE *fp)【位置】stdio.h 【说明】该函数是宏getc的函数版本。fputchar 【功能】向stdot输出一个字符。【原型】int fputchar(int c)【位置】stdio.h 【说明】函数是宏getchar的函数版本。fputs 【功能】向某个流输出一个字符。 【原型】int fputs(const char *s,FILE *fp)【位置】stdio.h 【说明】成功完成之后,返回最近写入的字符,否则返回EOF。【参见】fgets,puts fread 【功能】从某个流读入数据。 【原型】size_t fread(void *ptr,size_t n,FILE *fp)【位置】stdio.h 【说明】每次读入n个条目的字节大小。返回实际读入的条目数(而不是字节数)。 Turbo C函数 【参见】fopen,fwrite freopen 【功能】将一个新文件和某个打开的流相关联。 【原型】FILE *freopen(const char *filename,const char *mode,FILE *stream)【位置】stdio.h 【说明】首先关闭流。然后打开使用路径命名的文件,并且将其与流相关联。成功则返回流,失败返回NULL。【参见】fopen fscanf 【功能】从某个流执行格式化输入。 【原型】int fscanf(FILE *fp,const char *format,…)【位置】stdio.h 【说明】返回成功扫描、转换并且保存的输入字段数目,返回值中不包括没有保存的扫描字段。【参见】getc,fprintf,scanf fseek 【功能】定位某个流的文件指针。 【原型】int fseek(FILE *fp,long offset,int whence)【位置】stdio.h 【说明】offset表示与whence指定位置相对应的新位置。成功返回0,时白则返回非0值。【参见】ftell,fopen,lseek,rewind fsetpos 【功能】定位某个流的文件指针。 【原型】int fsetpos(FILE *fp,const fpos_t *pos)【位置】stdio.h 【说明】pos指向的新位置是通过上一次调用fgetpos得到的数值。成功返回0,时白返回一个非0值。 【参见】feek,fgetpos,ftell ftell 【功能】返回当前文件指针。【原型】long ftell(FILE *fp)【位置】stdio.h 【说明】成功则返回当前的文件指针位置,出现错误则返回-1L。【参见】tell,fseek,fgetpos,fsetpos fwrite 【功能】写入某个流。 【原型】size_t fwrite(const void *ptr,xiae_t n,FILE *fp)【位置】stdio.h 【说明】每次写入n个条目大小的字节,返回实际写入的条目数(而不是字节数)。【参见】fopen,fread getc 【功能】从某个流中得到一个字符。【原型】int get(FILE *fp)【位置】stdio.h 【说明】返回读入的字符。如果遇到文件尾或者出现错误,则返回EOF。【参见】fgets,fscanf,fopen,getch,getw,fread,putc,vfscanf,getchar getchar Turbo C函数 【功能】从stdin得到字符。【原型】int getchar(void)【位置】stdio.h 【说明】成功则getchar将读入的字符转换为不加符号的int并返回。如果遇到文件结尾或者出现错误,则返回EOF。 【参见】getc,fgetchar,ungetc,scanf,putchar,getch,vscanf,getc gets 【功能】从stdin得到一个字符串。【原型】*getc(char *string)【位置】stdio.h 【说明】从stdin收集输入内容,知道发现换行符(n)为止。n不放在string中。返回一个指针,指向参数string 【参见】ferror,fopen,fread,getc,putc,scanf getw 【功能】从流中得到整数。【原型】int getw(FILE *fp)【位置】stdio.h 【说明】返回输入流中的下一个整数,如果遇到文件结尾或者出现错误则返回EOF。使用feof或者ferror校验是否遇到文件结尾或者出现错误。【参见】putw perror 【功能】系统错误消息。 【原型】void perror(const char *s)【位置】stdio.h 【说明】向stderr打印一条错误消息。首先打印参数字符串,然后打印一个冒号,然后是与当前errno数值相对应的错误消息,最后打印换行符。【参见】strerror printf 【功能】向stdout发送格式化输出。 【原型】int printf(const char *format,…)【位置】stdio.h 【说明】按照format的要求格式化数目不定的参数,然后将输出结果发送到stdout。该函数返回输出字节数,如果出现错误则返回EOF。 【参见】ecvt,puts,fprintf,scanf,putc,vptintf putc 【功能】向某个流输出一个字符。【原型】int putc(int ch,FILE *fp)【位置】stdio.h 【说明】成功则putc返回字符ch,错误则返回EOF。 【参见】fputs,fputc,fwrite,fputchar,putchar,putw,frintf,vfprintf,getc,putch putchar 【功能】向stdout输出字符。【原型】int putchar(int ch)【位置】stdio.h 【说明】成功则返回字符ch,错误则返回EOF。 【参见】puts,putw,fputchar,putc,printf,vprintf,getchar,putch 44 Turbo C函数 puts 【功能】向stdout输出一个字符串(并且添加一个换行符)。【原型】int puts(const char *s)【位置】stdio.h 【说明】成功完成之后,puts返回写入的最后一个字符;否则返回EOF。【参见】putchar,gets,fputs,cputs putw 【功能】向某个流输出一个整数。【原型】int putw(int w,FILE *fp)【位置】stdio.h 【说明】返回整数w。【参见】printf,getw remove(filename)【功能】删除一个文件,该宏翻译了对unlink的调用。【原型】int remove(filename)【位置】stdio.h 【参见】unlink rename 【功能】重命名一个文件。 【原型】int rename(const char *oldname,const char *newname)【位置】stdio.h 【说明】成功重命名文件之后,rename返回0。出现错误则返回-1,并且设置errno。rewind 【功能】重新将文件指针定位在流的开始位置。【原型】void rewind(FILE *fp)【位置】stdio.h 【参见】fseek,fopen scanf 【功能】执行从stdin的格式化输入。 【原型】int scanf(congst char *format,…)【位置】stdio.h 【说明】返回成功处理的输入字段数目。要求按照format的要求处理输入,并且将结果放在参数指向的内存位置中。 【参见】atof,getc,vfscanf,cscanf,printf,vscanf,fscanf,sscanf,vsscanf setbuf 【功能】为某个流分配缓存。 【原型】void setbuf(FILE *fp,char *buf)【位置】stdio.h 【说明】如果buf为NULL,则无法缓存I/O,否则就可以缓存。缓存区的大小为BUFSIZ字节长。【参见】fopen,setvbuf setvbuf 【功能】为某个流分配缓存。 【原型】setvbuf(FILE *fp,char *buf,int type,size_t size)【位置】stdio.h 【说明】size表示以字节为单位的缓存区大小。使用setvbuf可以为流分配一个较大的缓存区。成功返回0,否则返回一个非0值。 Turbo C函数 【参见】fopen,setbuf sprintf 【功能】向某个字符串发送格式化输出。 【原型】int sprinf(char *buffer,const char *format,…)【位置】stdio.h 【说明】返回输出的字节数。出现错误时,返回EOF。【参见】printf,fprintf sscanf 【功能】从某个字符串执行格式化输入。 【原型】int sscnaf(const char *buffer,const char *format,…)【位置】stdio.h 【说明】返回成功扫描、转换并保存的输入字段数目。如果sscanf试图读入的位置超过缓存区范围,则返回值为EOF。 【参见】scanf,fscanf _strerror 【功能】构件一条自定义的错误消息字符串。【原型】*_strerror(const char *s)【位置】stdio.h 【说明】错误消息由s、一个冒号、一个空格、最近生成的系统错误消息及一个换行符构成。S应当小于等于94个字符。返回一个指针,指向错误消息字符串。【参见】strerror strerror 【功能】返回指向错误消息字符串的指针。【原型】char *strerror(int errnum)【位置】stdio.h 【说明】返回一个指针,指向与errnum相关联的错误消息。【参见】_streeeoe,perror tmpfile 【功能】以二进制模式打开一个scratch文件。【原型】FILE *tmpfile(void)【位置】stdio.h 【说明】返回一个指针,指向临时文件创建的流。如果无法创建文件,则tmpfile返回NULL。【参见】fopen,tmpnam tmpnam 【功能】创建一个为一个文件名称。【原型】char *tmpnam(char *sptr)【位置】stdio.h 【说明】如果sptr为NULL,则tmpnam返回一个指针,指向一个内部的静态对象。否则tmpnam返回sptr。 【参见】tmpfile ungetc 【功能】将一个字符退回输入流。【原型】int ungetc(int c,FILE *fp)【位置】stdio.h 【说明】下一次对流fp调用getc(或者其他的流输入函数)时将返回c。如果执行成功,则ungetc返回退回的字符。如果操作失败则返回EOF。 Turbo C函数 【参见】getc unlink 【功能】删除一个文件。 【原型】int unlink(const char *filename)【位置】stdio.h,dos.h,io.h 【说明】如果filename指定的文件属性为只读,则unlink操作失败。首先需要调用chomd函数改变文件属性。 成功返回0,错误返回-1。【参见】chmod,remove vfprintf 【功能】使用参数列表向某个流发送格式化输出。 【原型】int vfprintf(FILE *fp,const char *format,va_list arglist)【位置】stdio.h 【说明】返回输出的字节数,如果出现错误则返回EOF。【参见】printf vfscanf 【功能】用参数列表向某个流发送格式化输入。 【原型】int vfscanf(FILE *fp,const char *format,va_list arglist)【位置】stdio.h 【说明】返回成功扫描、转换并保存的输入字段数。【参见】scanf vprintf 【功能】用参数列表从stdin执行格式化输出。 【原型】int vprintf(const char *format,va_list,arglist)【位置】stdio.h 【说明】返回输出的字节数,如果出现错误则返回EOF。【参见】printf vscanf 【功能】使用参数列表从stdin执行格式化输入。 【原型】int vscanf(const char *format,va_list arglist)【位置】stdio.h 【说明】返回成功扫描、转换并保存的输入字段数,遇到文件结尾则返回EOF。【参见】scanf vsprintf 【功能】使用参数列表向一个字符串发送格式化输入。 【原型】vsprintf(char *buffer,const char *format,va_list arglist)【位置】stdio.h 【说明】返回输出的字结束。如果出现错误则返回EOF。【参见】printf vsscanf 【功能】使用参数列表从一个字符串执行格式化输入。 【原型】int vsscanf(const char *buffer,const char *format,va_list arglist)【位置】stdio.h 【说明】返回成功扫描、转换并保存的输入字段数,如果遇到文件结尾则返回EOF。【参见】scanf,sscanf,vfscanf STDLIB.H Turbo C函数 abort 【功能】异常终止某个进程。【原型】void abort(void)【位置】stdlib.h,process.h 【参见】atexit,assert,exit abs 【功能】得到一个整数的绝对值,abs(x)中的x表示一个int值。【原型】int abs(int x)【位置】math.h,stdlib.h atexit 【功能】寄存器终止函数。 【原型】int atexit(atexit_t func)【位置】stdlib.h 【说明】成功返回0,失败返回非0值。【参见】exit,abort atof 【功能】将一个字符串转换成符点数。【原型】double atof(const char *s)【位置】math.h,stdlib.h 【说明】返回s经过转换之后的值,如果s不能转换则返回0。【参见】atoi,atol,ecvt,fcvt,sscanf,strtod atoi 【功能】将一个字符串转换为一个短整数。【原型】int atoi(const char 8s)【位置】stdlib.h 【说明】返回输入字符串转换后的值。如果字符串无法转换,则返回值为0。【参见】atof,atol,ecvt,sscanf,strtod atol 【功能】将一个字符串转换为一个长整数。【原型】int atol(const char *s)【位置】stdlib 【说明】返回输入字符串转换后的值。如果字符串无法转换,则返回值为0。【参见】atof,atoi,ecvt,fcvt,sscanf,strtod bsearch 【功能】两分法查找。 【原型】*bsearch(const void key,const void base,size_t width,int(fcmp)(const void,const void*)) 【位置】stdlib.h 【说明】返回表中的一个符合查找关键字的条目的值。如果没有找到匹配条目,则返回0。在bsearch中,如果*elem1小于*elem2则*fcmp的返回值小于0,如果*elem1等于*elem2则返回值等于0,如果*elem1大于*elem2则返回值大于0。表必须按照升序排列。【参见】lsearch,qsort calloc 【功能】分配主存。 【原型】void *calloc(size_t nelem,size_t elsize)【位置】stdlib.h,alloc.h Turbo C函数 【说明】为nelem数据项的每elsize个字节分别分配空间,同时在空间中保存0值。返回一个指向新分配块的指针,如果没有足够的空间则返回NULL。【参见】malloc div 【功能】两个整数相除。 【原型】div_t div(int number,int denom)【位置】stdlib.h 【说明】每个函数都返回一个结构,其中的元素由quot(商)和rem(余数)组成。Div的元素为整型。ecvt 【功能】将一个符点数转换为字符串。 【原型】char *ecvt(double value,int ndig,int *dec,int *sign)【位置】stdlib.h exit 【功能】终止程序。 【原型】void exit(int status)【位置】stdlib.h,process.h 【说明】终止程序之前,清空输出缓存,关闭文件,并且退出调用的函数。【参见】abort,atext,_exit fcvt 【功能】将一个符点数转换为字符串。 【原型】char *fcvt(double value,int ndig,int *dec,int *sign)【位置】stdlib.h free 【功能】释放通过malloc或者calloc分配的数据块。【原型】void free(void *block)【位置】stdlib.h,alloc.h 【参见】malloc,calloc,freemem gcvt 【功能】将一个符点数转换为字符串。 【原型】char *gcvt(double value,int ndig,char *buf)【位置】stdlib.h 【说明】返回buf 【参见】ecvt,fcvt gerenv 【功能】从环境变量中得到字符串。 【原型】char *getenv(const char *name)【位置】stdlib.h 【说明】成功返回一个指针,指向与name相关的数值;如果name环境中没有定义,则返回NULL。【参见】putenv,envirir itoa 【功能】将一个整数转换为字符串。 【原型】char *itoa(int value,char *string,int radix)【位置】stdlib.h 【说明】返回一个指针,指向目的字符串。【参见】ltoa labs Turbo C函数 【功能】求长整数的绝对值。【原型】long labs(long x)【位置】math.h,stdlib.h 【参见】abs,cabs ldiv 【功能】两个长整数相除。 【原型】ldiv_t ldiv(long lnumber,long ldenom)【位置】stdlib.h 【说明】每个函数都返回一个结构,其中的元素由quot(商)和rem(余数)组成。Ldiv的元素为长整型。lfind 【功能】执行线性查找。 【原型】void *lfind(const void *key,const void *base,size_t *pnelem,size_t width, int(*fcmp)(const void*,const void*))【位置】stdlib.h 【说明】该函数使用一个用户自定义的程序(fcmp),在顺序记录的数组中查找key值。 数组中一共有pnelem个记录,每个的宽度为width字节,并且从base指向的内存位置开始。返回表中与查找关键字匹配的第1个条目的地址。如果没有找到匹配条目,则lsearch将其添加到列表结尾。如果*elem1等于*elem2则*fcmp程序必须返回0,否则返回非0。【参见】basearch,qsort _lrotl 【功能】将一个长整数向右循环。 【原型】_lrotl(unsigned long val,int count)【位置】stdlib.h 【说明】函数返回val循环count位后的数值。【参见】_rotl _lrotr 【功能】将一个长整数向左循环。 【原型】_lrotr(unsigned long val,int count)【位置】stdlib.h 【说明】函数返回val循环count位后的数值。【参见】_rolt lsearch 【功能】执行线性查找。 【原型】void *lsearch(const void *key,void *base,size_t *pnelem,size_t width,int(*fcmp)(const void*,const void*))【位置】stdlib.h 【说明】该函数使用一个用户自定义的程序(fcmp),在顺序记录的数组中查找key值。数组中一共有pnelem个记录,每个的宽度为width字节,并且从base指向的内存位置开始。 返回表中与查找关键字匹配的第1个条目的地址。如果没有找到匹配条目,则lsearch将其添加到列表结尾。如果*elem1等于*elem2则*fcmp程序必须返回0,否则返回非0。【参见】bsearch,qsort ltoa 【功能】将一个长整数转换成一个字符串。 【原型】char *ltoa(long value,char *string,int radix)【位置】stdlib.h PostgreSQL学习手册:SQL语言函数 一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。 CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如: CREATE FUNCTION clean_emp()RETURNS void AS $$ DELETE FROM emp WHERE salary < 0; $$ LANGUAGE SQL; 最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$1.name访问复合类型参数中的name字段。需要注意的是函数参数只能用作数据值,而不能用于标识符,如: INSERT INTO mytable VALUES($1);--合法 INSERT INTO $1 VALUES(42);--不合法(表名属于标示符之一) 二、基本类型: 最简单的SQL函数可能就是没有参数且返回基本类型的函数了,如: CREATE FUNCTION one()RETURNS integer AS $$ SELECT 1 AS result; $$ LANGUAGE SQL; 下面的例子声明了基本类型作为函数的参数。 CREATE FUNCTION add_em(integer, integer)RETURNS integer AS $$ SELECT $1 + $2; $$ LANGUAGE SQL; # 通过select调用函数。 postgres=# SELECT add_em(1,2)AS answer; answer -------- (1 row) 在下面的例子中,函数体内包含多个SQL语句,它们之间是用分号进行分隔的。 CREATE FUNCTION tf1(integer, numeric)RETURNS numeric AS $$ UPDATE bank SET balance = balance-$2 WHERE accountno = $1; SELECT balance FROM bank WHERE accountno = $1; $$ LANGUAGE SQL; lv包包、古奇女包、coach包:|兔毛皮草、獭兔皮草、皮草服饰: 三、复合类型: 见如下示例: 1).创建数据表,这样与之对应的复合类型也随之生成。 CREATE TABLE emp(name text,salary numeric,age integer,); 2).创建函数,其参数为复合类型。在函数体内,可以像引用基本类型参数那样引用复合类型,如$1。访问复合类型的字段使用点表达式即可,如:$1.salary。 CREATE FUNCTION double_salary(emp)RETURNS integer AS $$ SELECT($1.salary * 2)::integer AS salary; $$ LANGUAGE SQL; 3).在select语句中,可以使用emp.*表示emp表的一整行数据。 SELECT name, double_salary(emp.*)AS dream FROM emp WHERE age > 30; 4).我们也可以使用ROW表达式构造自定义的复合类型,如: SELECT name, double_salary(ROW(name, salary*1.1, age))AS dream FROM emp; 5).创建一个函数,其返回值为复合类型,如: CREATE FUNCTION new_emp()RETURNS emp AS $$ SELECT ROW('None', 1000.0, 25)::emp; $$ LANGUAGE SQL; 6).调用返回复合类型的函数。 SELECT new_emp(); 7).调用返回复合类型的函数,同时访问该返回值的某个字段。 SELECT(new_emp()).name; 四、带输出参数的函数: 还有一种方法可以用于返回函数执行的结果,即输出参数,如: CREATE FUNCTION add_em2(IN x int, IN y int, OUT sum int)AS $$ SELECT $1 + $2 $$ LANGUAGE SQL; 调用方法和返回结果与add_em(带有返回值的函数)完全一致,如: SELECT add_em(3,7); 这个带有输出参数的函数和之前的add_em函数没有本质的区别。事实上,输出参数的真正价值在于它为函数提供了返回多个字段的途径。如,CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT product int)AS $$ SELECT $1 + $2, $1 * $2 $$ LANGUAGE SQL; 调用方式没有改变,只是返回结果多出一列。 SELECT * FROM sum_n_product(11,42); sum | product -----+--------- | 462 (1 row) 在上面的示例中,IN用于表示该函数参数为输入参数(缺省值,可以忽略),OUT则表示该参数为输出参数。 五、返回结果作为表数据源: 所有SQL函数都可以在查询的FROM子句里使用。该方法对于返回复合类型的函数而言特别有用,如果该函数定义为返回一个基本类型,那么该函数生成一个单字段表,如果该函数定义为返回一个复合类型,那么该函数生成一个复合类型里每个属性组成的行。见如下示例: 1).创建一个数据表。 CREATE TABLE foo(fooid int,foosubid int,fooname text); 2).创建SQL函数,其返回值为与foo表对应的复合类型。 CREATE FUNCTION getfoo(int)RETURNS foo AS $$ SELECT * FROM foo WHERE fooid = $1; $$ LANGUAGE SQL; 3).在FROM子句中调用该函数。 SELECT *, upper(fooname)FROM getfoo(1)AS t1; 六、返回集合的SQL函数: 如果SQL函数的返回值为SETOF sometype,那么在调用该函数时,将返回最后一个SELECT查询的全部数据。这个特性通常用于把函数放在FROM子句里调用,见如下示例: CREATE FUNCTION getfoo(int)RETURNS setof foo AS $$ SELECT * FROM foo WHERE fooid = $1; $$ LANGUAGE SQL; 在FROM子句中调用了返回复合类型集合的函数,其结果等同于:SELECT * FROM(SELECT * FROM foo WHERE fooid = 1)t1; SELECT * FROM getfoo(1)AS t1; 七、多态的SQL函数: SQL函数可以声明为接受多态类型(anyelement和anyarray)的参数或返回多态类型的返回值,见如下示例: 1).函数参数和返回值均为多态类型。 CREATE FUNCTION make_array(anyelement, anyelement)RETURNS anyarray AS $$ SELECT ARRAY[$1, $2]; $$ LANGUAGE SQL; 其调用方式和调用其它类型的SQL函数完全相同,只是在传递字符串类型的参数时,需要显式转换到目标类型,否则将会被视为unknown类型,如: SELECT make_array(1, 2)AS intarray, make_array('a'::text, 'b')AS textarray; 2).函数的参数为多态类型,而返回值则为基本类型。 CREATE FUNCTION is_greater(anyelement, anyelement)RETURNS boolean AS $$ SELECT $1 > $2; $$ LANGUAGE SQL; 3).多态类型用于函数的输出参数。 CREATE FUNCTION dup(f1 anyelement, OUT f2 anyelement, OUT f3 anyarray)AS $$ SELECT $1, ARRAY[$1,$1] $$ LANGUAGE sql; 八、函数重载: 多个函数可以定义成相同的函数名,但是它们的参数一定要有所区分。换句话说,函数名可以重载,此规则有些类似于面向对象语言中的函数重载,见如下示例: CREATE FUNCTION test(int, real)RETURNS...CREATE FUNCTION test(smallint, double)RETURNS...由于在PostgreSQL中函数支持重载,因此在删除函数时,也必须指定参数列表,如: DROP FUNCTION test(int, real); DROP FUNCTION test(smallint,double); 实验7 函数 一、实验目的(1)掌握定义函数的方法; (2)掌握函数实参与形参的对应关系以及“值传递”的方式; (3)掌握函数的嵌套调用和递归调用的方法; (4)掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。 (5)学习对多文件程序的编译和运行。 二、实验内容 编程序并上机调试运行。 (1)写一个判别素数的函数,在主函数输入一个整数,输出是否是素数的信息。(习 题8.3) 本程序应当准备以下测试数据:17、34、2、1、0。分别输入数据,运行程序并检查结果是否正确。 (2)用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递 给该函数。(习题8.10) 把两个函数放在同一程序文件中,作为一个文件进行编译和运行。 把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。 (3)用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。 n的为数不确定,可以是任意的整数。(习题8.17) (4)求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一个 函数根据求出的最大公约数求最小公倍数。(习题8.1) ① 不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回主函数输出最大公约数和最小公倍数。 ② 用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。 (5)写一函数,输入一个十六进制数,输出相应的十进制数。(习题8.16) 函数 本章重点: 本章难点: //函数相关内容: *语法:包括定义,声明,调用,*语义 语句包括:表达式语句,空语句,控制语句,复合语句,函数调形参与实参的意义、作用与区别; 参数的两种传递方式; 对递归函数调用过程的理解; 全局变量和局部变量的作用。函数的定义和调用; 函数间的数据传递方式; 嵌套调用和递归调用; 变量的作用域和存储类别; 模块化程序设计方法。用语句 函数:*函数首部:包括返回值类型,函数名,形参 *函数体 *函数调用的过程:*开辟空间(形参,函数的局部变量) 1.函数其实就是一段可以重复调用的、功能相对独立完整的程序段。 2.主函数可以调用其他函数,其他函数也可以互相调用。 3.一个C程序必须有一个且只能有一个main函数,无论main函数位于程序 的什么位置,运行时都是从main函数开始执行的。 4.函数不能嵌套定义,也就是说一个函数不能从属于另一个函数。函数之 *把实参送给形参 *执行函数 *释放空间 间可以互相调用,但是任何函数不能调用main函数,main函数是被操作系 统调用的。 5.函数的分类: (1)从用户角度看:库函数、用户自定义的函数(2)从形式:无参函数、有参函数 6.函数定义即函数的实现,是对所要完成功能的操作进行描述的过程,包 括函数命名和返回值类型声明、形式参数的类型说明、变量说明和一系 列操作语句等。 函数和变量一样,必须“先定义,后使用” 7.函数定义应包括以下内容: 函数的名字、返回值的类型。函数参数的类型和名字,无参函数不需要 指定。指定函数的功能 8.在函数体中,声明部分是对函数内部所用到的变量的类型说明,并对要 调用的函数进行声明。 9。定义有参函数的一般形式为: 类型标识符 函数名(形式参数表列){ 声明部分; } 语句; 10.在C语言中,可以用以下几种方式调用函数(1)函数表达式 函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式 的运算。这时要求函数是有返回值的。 例如:y=sin(x);(2)函数语句 函数调用的一般形式加上分号即构成函数语句。 例如:printf(“%d”,a); 这种方式通常只要求函数完成一定的操作,不要求函数带回值。(3)函数实参 这种方式是函数作为另一个函数调用的实际参数出现,也就是把该函 数的返回值作为实参进行数据传送,所以要求该函数必须是有返回值 的。 例如:printf(“%d”,max(a,b)); 11.实参:可以是常量、变量和表达式。 12.只有在发生函数调用时,才给形参分配单元,并且赋值,一旦函数调 用结束后,形参所占的内存单元又被释放掉。 13.在调用函数过程中发生的实参与形参间的数据传递是“值传递”,只 能由实参向形参传递数据,是单向传递,不能由形参传给实参。 14.声明的作用是把函数的返回值类型、函数名、函数参数的个数和类型 等信息通知编译系统,以便在遇到函数调用时,编译系统能识别该函 数并检查调用是否合法 15.函数的声明方法: (1)只说明函数的类型,这称为简单声明。int min();(2)不仅说明函数的类型还要说明参数的个数和类型,这称为原型声明。 int min(int x,int y); 16.数组名作函数参数时,形参数组和实参数组为同一数组,共同拥有一段 内存空间。 17.数组元素不能用作形参,因为形参是在函数调用时临时分配内存存储 单元的,不能为一个数组元素单独分配存储单元。 18.变量的有效范围(作用域) 19.局部变量也称为内部变量,是在函数内或函数的复合语句内定义说明的。 20.全局变量也称为外部变量,它是在函数外部定义的变量,位置在所有 函数前、各个函数之间或所有函数后。 *其作用域是从定义变量的位置开始到本源文件结束。 *设置全局变量的作用是可以增加各个函数之间的数据传输渠道。21.变量的完整说明为: 存储类型 数据类型 变量名表列; 例如: auto int x,y; 22.C语言变量的存储方式可以分为动态存储方式和静态存储方式。 23.动态存储方式:(1)自动变量(auto变量)(2)寄存器变量(register变量)(3)形式参数 24.静态存储方式: (1)静态局部变量(static局部变量) 其语法格式为: static 类型标识符 变量名; 例如:static int f; (2)全局变量(全局变量赋初值也是在编译时完成的,且仅执行一次赋初值的操作。) 不能用extern来初始化外部变量。 (3)静态外部变量 25.一般为了叙述方便,把建立存储空间的变量声明称定义,而把不需要 建立存储空间的声明称为声明 26.在函数中出现的对变量的声明(除了用extern声明的以外)都是定义。 例如:extern int x=25; //错误 *外部变量第二篇:C语言函数
第三篇:PostgreSQL学习手册:SQL语言函数
第四篇:c语言函数
第五篇:C语言函数知识点总结