龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

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

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
函数名: kbhit 功 能: 检查当前按下的键 用 法: int kbhit(void); 程序例: #include int main(void) { cprintf("Press any key to continue:"); while (!kbhit()) /* do nothing */ ; cprintf(" A key was pressed... "); return 0; } 函数

  函数名: kbhit

  功 能: 检查当前按下的键

  用 法: int kbhit(void);

  程序例:

  #include

  

  int main(void)

  {

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

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

   cprintf("

A key was pressed...

");

   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

  /* 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;

  }

  

精彩图集

赞助商链接