C语言库函数(K类字母)

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

函数名: kbhit

功 能: 检查当前按下的键

用 法: int kbhit(void);

程序例:

#include <conio.h>

int main(void)

{

cprintf("Press any key to continue:");

while (!kbhit()) /* do nothing */ ;

cprintf("\r\nA key was pressed...\r\n");

return 0;

}

函数名: keep

功 能: 退出并继续驻留

用 法: void keep(int status, int size);

程序例:

/***NOTE:

This is an interrupt service routine. You

can NOT compile this program with Test

Stack Overflow turned on and get an

executable file which will operate

correctly. Due to the nature of this

function the formula used to compute

the number of paragraphs may not

necessarily work in all cases. Use with

care! Terminate Stay Resident (TSR)

programs are complex and no other support

for them is provided. Refer to the

MS-DOS technical documentation

for more information. */

#include <dos.h>

/* The clock tick interrupt */

#define INTR 0x1C

/* Screen attribute (blue on grey) */

#define ATTR 0x7900

/* redUCe heaplength and stacklength

to make a smaller program in memory */

extern unsigned _heaplen = 1024;

extern unsigned _stklen = 512;

void interrupt ( *oldhandler)(void);

void interrupt handler(void)

{

unsigned int (far *screen)[80];

static int count;

/* For a color screen the video memory

is at B800:0000. For a monochrome

system use B000:000 */

screen = MK_FP(0xB800,0);

/* increase the counter and keep it

within 0 to 9 */

count++;

count %= 10;

/* put the number on the screen */

screen[0][79] = count + '0' + ATTR;

/* call the old interrupt handler */

oldhandler();

}

int main(void)

{

/* get the address of the current clock

tick interrupt */

oldhandler = getvect(INTR);

/* install the new interrupt handler */

setvect(INTR, handler);

/* _psp is the starting address of the

program in memory. The top of the stack

is the end of the program. Using _SS and

_SP together we can get the end of the

stack. You may want to allow a bit of

saftey space to insure that enough room

is being allocated ie:

(_SS + ((_SP + safety space)/16) - _psp)

*/

keep(0, (_SS + (_SP/16) - _psp));

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航