C语言库函数
计算机术语
C语言库函数是把自定义函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供程序员使用。程序员用的时候把它所在的文件名用#include<>加到里面就可以了(尖括号内填写文件名),例如#include<math.h>。
定义
一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。
由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口。
内容介绍
C语言是一种程序设计的入门语言。由于C语言的语句中没有提供直接计算sin或cos函数的语句,会造成编写程序困难;但是函数库提供了sin和cos函数,可以拿来直接调用。显示一段文字,我们在C语言中找不到显示语句,只能使用库函数printf。
C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要,编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。在编写C语言程序时,使用库函数,既可以提高程序的运行效率,又可以提高编程的质量。
相关概念
函数库
函数库是由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。
库函数
存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值
连接程序
编译程序生成的目标文件连接在一起生成一个可执行文件
头文件
有时也称为包含文件。C语言库函数用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件,用户使用时应查阅有关版本的C的库函数参考手册。
常用的库函数
abort
函数名:abort
功 能:异常终止一个进程
函数与形参类型:
void abort(void);
程序例:
#include
#include <stdlib.h> int main(void)
{
abort();
return 0; /* This is never reached */
}
abs
函数名:abs
功 能:计算整数num的值。返回整数num的绝对值
函数与参数类型:
int abs(num)
int num;
程序例:
#include
#include <math.h> int main(void)
{
return 0;
}
absread abswirte
函数名: absread, abswirte
功 能:绝对磁盘扇区读、写数据
函数与形参类型:
int absread(int drive, int nsects, int sectno, void *buffer);
int abswrite(int drive, int nsects, in tsectno, void *buffer);
程序例:
/* absread example */ #include
#include <conio.h>
#include <process.h>
#include <dos.h> int main(void)
{
int i, strt, ch_out, sector;
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{
exit(1);
}
strt = 3;
for (i=0; i<80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
return(0);
}
access
函数名:access
功 能:确定文件的访问权限
函数与形参类型:
int access(const char *filename, int amode);
程序例:
#include
#include int file_exists(char *filename); int main(void)
{
return 0;
} int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
acos
函数名: acos
功 能:计算并返回arccos(x)值、要求-1<=X<=1
函数与形参类型:
double acos(x)
double x;
程序例:
#include
#include int main(void)
{
double result;
double x = 0.5; result = acos(x);
return 0;
}
allocmem
函数名:allocmem
功 能:分配DOS存储段
函数与形参类型:
int allocmem(unsigned size, unsigned *seg);
程序例:
#include
#include
#include int main(void)
{
unsigned int size, segp;
int stat; size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, &segp);
if (stat == -1)
else
stat); return 0;
}
arc
函数名:arc
功 能:画一弧线
函数与形参类型:
void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#include <graphics.h>
#include
#include
#include
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 45, endangle = 135;
int radius = 100; /* initialize graphics and local variables */
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
grapherrormsg(errorcode));
getch(); exit(1); /* terminate with an error code */
} midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor()); /* draw arc */
arc(midx, midy, stangle, endangle, radius); /* clean up */
getch();
closegraph();
return 0;
}
asctime
函数名: asctime
功 能:转换日期和时间为ASCII
函数与形参类型:
char *asctime(const struct tm *tblock);
程序例:
#include
#include <string.h>
#include <time.h> int main(void)
{
struct tm t;
char str[80]; /* sample loading of tm structure */ t. tm_sec = 1; /* Seconds */
t. tm_min = 30; /* Minutes */
t. tm_hour = 9; /* Hour */
t. tm_mday = 22; /* Day of the Month */
t. tm_mon = 11; /* Month */
t. tm_year = 56; /* Year - does not include century */
t. tm_wday = 4; /* Day of the week */
t. tm_yday = 0; /* Does not show in asctime */
t. tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */ /* converts structure to null terminated
string */ strcpy(str, asctime(&t));
}
asin
函数名::asin
功 能::计算并返回arcsin(x)值、要求-1<=X<=1
函数与形参类型:
double asin(x)
double x;
程序例:
#include
#include int main(void)
{
double result;
double x = 0.5; result = asin(x);
return(0);
}
assert
函数名: assert
功 能:测试一个条件并可能使程序终止
函数与形参类型:
void assert(int test);
程序例:
#include <assert.h>
#include
#include struct ITEM {
int key;
int value;
}; /* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
} int main(void)
{
additem(NULL);
return 0;
}
atan
函数名:atan
功 能:计算并返回arctan(x)的值
函数与形参类型:
double atan(double x);
程序例:
#include
#include int main(void)
{
double result;
double x = 0.5; result = atan(x);
return(0);
}
atan2
函数名: atan2
功 能:计算并返回arctan(y / x)值
函数与形参类型:
double atan2(double y, double x);
程序例:
#include
#include int main(void)
{
double result;
double x = 90.0, y = 45.0; result = atan2(y, x);
return 0;
}
atexit
函数名: atexit
功 能:注册终止函数
函数与形参类型:
int atexit(atexit_t func);
程序例:
#include
#include void exit_fn1(void)
{
} void exit_fn2(void)
{
} int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
atof
函数名: atof
功 能:把str指向的ASC字符串转换成一个double型整数返回双精度的结果
函数与形参类型:
double atof(str)
char*str;
程序例:
#include
#include int main(void)
{
float f;
return 0;
}
atoi
函数名:atoi
功 能:
把str指向的ASCⅡz字符串转换成一个整数。返回整数结果
函数与参数类型:
double atoi(str )
char *str;
程序例:
#include
#include int main(void)
{
int n;
return 0;
}
atol
函数名:atol
功 能:
把字符串转换成长整型数 。返回长整数结果
函数与参数类型:
long atol(str )
char *str;
程序例:
#include
#include int main(void)
{
long l;
return(0);
}
mkdir
函数名:mkdir
功 能:建立一个目录
用 法:
int mkdir(char *pathname);
程序例:
#include
#include
#include
#include
int main(void)
{
int status;
getch();
getch();
return 0;
}
mktemp
函数名: mktemp
功 能:建立唯一的文件名
用 法:
char *mktemp(char *template);
程序例:
#include
#include
int main(void)
{
/* fname defines the template for the
temporary file. */
ptr = mktemp(fname);
return 0;
}
MK_FP
函数名: MK_FP
功 能:设置一个远指针
用 法:
void far *MK_FP(unsigned seg, unsigned off);
程序例:
#include
#include
int main(void)
{
int gd, gm, i;
unsigned int far *screen;
detectgraph(&gd, &gm);
if (gd == HERCMONO)
screen = MK_FP(0xB000, 0);
else
screen = MK_FP(0xB800, 0);
for (i=0; i<26; i++)
screen[i] = 0x0700 + ('a' + i);
return 0;
}
modf
函数名: modf
功 能:把数分为整数和尾数
用 法:
double modf(double value, double *iptr);
程序例:
#include
#include
int main(void)
{
double fraction, integer;
double number = 100000.567;
fraction = modf(number, &integer);
number, integer, fraction);
return 0;
}
movedata
函数名: movedata
功 能:拷贝字节
用 法:
void movedata(int segsrc, int offsrc, int segdest,
int offdest, unsigned numbytes);
程序例:
#include
#define MONO_BASE 0xB000
/* saves the contents of the monochrome screen in buffer */
void save_mono_screen(char near *buffer)
{
movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);
}
int main(void)
{
char buf[80*25*2];
save_mono_screen(buf);
}
moverel
函数名: moverel
功 能:将当前位置(CP)移动一相对距离
用 法:
void far moverel(int dx, int dy);
程序例:
#include
#include
#include
#include
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
char msg[80];
/* initialize graphics and local variables */
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
getch();
exit(1); /* terminate with an error code */
}
/* move the C.P. to location (20, 30) */
moveto(20, 30);
/* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor());
/* create and output a message at (20, 30) */
outtextxy(20, 30, msg);
/* move to a point a relative distance */
/* away from the current value of C.P. */
moverel(100, 100);
/* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor());
/* create and output a message at C.P. */
outtext(msg);
/* clean up */
getch();
closegraph();
return 0;
}
movetext
函数名: movetext
功 能:将屏幕文本从一个矩形区域拷贝到另一个矩形区域
用 法:
int movetext(int left, int top, int right, int bottom,
int newleft, int newtop);
程序例:
#include
#include
int main(void)
{
clrscr();
cputs(str);
getch();
movetext(1, 1, strlen(str), 2, 10, 10);
getch();
return 0;
}
moveto
函数名: moveto
功 能:将CP移到(x, y)
用 法:
void far moveto(int x, int y);
程序例:
#include
#include
#include
#include
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
char msg[80];
/* initialize graphics and local variables */
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
getch();
exit(1); /* terminate with an error code */
}
/* move the C.P. to location (20, 30) */
moveto(20, 30);
/* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor());
/* create and output a message at (20, 30) */
outtextxy(20, 30, msg);
/* move to (100, 100) */
moveto(100, 100);
/* plot a pixel at the C.P. */
putpixel(getx(), gety(), getmaxcolor());
/* create and output a message at C.P. */
outtext(msg);
/* clean up */
getch();
closegraph();
return 0;
}
movemem
函数名: movemem
功 能:移动一块字节
用 法:
void movemem(void *source, void *destin, unsigned len);
程序例:
#include
#include
#include
#include
int main(void)
{
char *destination;
int length;
length = strlen(source);
destination = malloc(length + 1);
movmem(source,destination,length);
return 0;
}
normvideo
函数名: normvideo
功 能:选择正常亮度字符
用 法:
void normvideo(void);
程序例:
#include
int main(void)
{
normvideo();
return 0;
}
nosound
函数名: nosound
功 能:关闭PC扬声器
用 法:
void nosound(void);
程序例:
/* Emits a 7-Hz tone for 10 seconds.
True story: 7 Hz is the resonant frequency of a chicken's skull cavity.
This was determined empirically in Australia, where a new factory
generating 7-Hz tones was located too close to a chicken ranch:
When the factory started up, all the chickens died.
Your PC may not be able to emit a 7-Hz tone.
*/
int main(void)
{
sound(7);
delay(10000);
nosound();
}
参考资料
最新修订时间:2024-01-22 20:19
目录
概述
定义
内容介绍
参考资料