⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pushpop.c

📁 这个程序是用于通讯的
💻 C
字号:

/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                                           *
*       P U S H  /  P O P   S C R E E N S   T O   N E A R   M E M O R Y     *
*                Mike Dumdei, 6 Holly Lane, Texarkana TX  75503             *
*                    Requires ASM modules PO_SCRN & PU_SCRN                 *
*                                                                           *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **/
#if defined(__TURBOC__)
  #include <alloc.h>
#elif defined(__ZTC__)
  #include <stdlib.h>
#else
  #include <malloc.h>
#endif

int pu_scrnd(int, int, int, int, char *);
int po_scrnd(char *);

static char *ScrnPtrAry[10];            /* max of 10 screens may be pushed */
static char **ScrnPtr = ScrnPtrAry;
static char CurntScrn = -1;

/*
        p u s h s c r n
*/
int pushscrn(int row, int col, int nrows, int ncols)
{
    if (CurntScrn == 9)
        return (-1);                 /* can't push it if 10 already pushed */
    if ((*ScrnPtr = malloc(2 * nrows * ncols + 16)) == (char *)0)
        return (-2);                    /* can't push it if no memory left */
    pu_scrnd(row, col, nrows, ncols, *ScrnPtr);
    CurntScrn++, ScrnPtr++;
    return (0);         /* push scrn, update variables, and return success */
}

/*
        p o p s c r n
*/
int popscrn(void)
{
    if (CurntScrn < 0)
        return (-1);                         /* can't pop it if not pushed */
    --CurntScrn, --ScrnPtr;
    po_scrnd(*ScrnPtr);
    free(*ScrnPtr);
    return (0);         /* adj vars, pop the screen, free the mem, & retrn */
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -