C語(yǔ)言函數(shù)大全(k開(kāi)頭)

字號(hào):

函數(shù)名: kbhit
    功 能: 檢查當(dāng)前按下的鍵
    用 法: int kbhit(void);
    程序例:
    #include
    int main(void)
    {
    cprintf("Press any key to continue:");
    while (!kbhit()) /* do nothing */ ;
    cprintf("\r\nA key was pressed...\r\n");
    return 0;
    }
    函數(shù)名: keep
    功 能: 退出并繼續(xù)駐留
    用 法: 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;
    }