这篇教程C++ vmCheckStack函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中vmCheckStack函数的典型用法代码示例。如果您正苦于以下问题:C++ vmCheckStack函数的具体用法?C++ vmCheckStack怎么用?C++ vmCheckStack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了vmCheckStack函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ficlCcallvoidficlCcall(FICL_VM *pVM){ int (*func)(int, ...); int result, p[10]; int nparam, i;#if FICL_ROBUST > 1 vmCheckStack(pVM, 2, 0);#endif func = stackPopPtr(pVM->pStack); nparam = stackPopINT(pVM->pStack);#if FICL_ROBUST > 1 vmCheckStack(pVM, nparam, 1);#endif for (i = 0; i < nparam; i++) p[i] = stackPopINT(pVM->pStack); result = func(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9]); stackPushINT(pVM->pStack, result); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:28,
示例2: pfopen/* fopen - open a file and return new fd on stack. * * fopen ( ptr count mode -- fd ) */static void pfopen(FICL_VM *pVM){ int mode, fd, count; char *ptr, *name;#if FICL_ROBUST > 1 vmCheckStack(pVM, 3, 1);#endif mode = stackPopINT(pVM->pStack); /* get mode */ count = stackPopINT(pVM->pStack); /* get count */ ptr = stackPopPtr(pVM->pStack); /* get ptr */ if ((count < 0) || (ptr == NULL)) { stackPushINT(pVM->pStack, -1); return; } /* ensure that the string is null terminated */ name = (char *)malloc(count+1); bcopy(ptr,name,count); name[count] = 0; /* open the file */ fd = open(name, mode); free(name); stackPushINT(pVM->pStack, fd); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:33,
示例3: ficlUnsetenvvoidficlUnsetenv(FICL_VM *pVM){#ifndef TESTMAIN char *name;#endif char *namep; int names;#if FICL_ROBUST > 1 vmCheckStack(pVM, 2, 0);#endif names = stackPopINT(pVM->pStack); namep = (char*) stackPopPtr(pVM->pStack);#ifndef TESTMAIN name = (char*) ficlMalloc(names+1); if (!name) vmThrowErr(pVM, "Error: out of memory"); strncpy(name, namep, names); name[names] = '/0'; unsetenv(name); ficlFree(name);#endif return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:28,
示例4: ficlGetenvvoidficlGetenv(FICL_VM *pVM){#ifndef TESTMAIN char *name;#endif char *namep, *value; int names;#if FICL_ROBUST > 1 vmCheckStack(pVM, 2, 2);#endif names = stackPopINT(pVM->pStack); namep = (char*) stackPopPtr(pVM->pStack);#ifndef TESTMAIN name = (char*) ficlMalloc(names+1); if (!name) vmThrowErr(pVM, "Error: out of memory"); strncpy(name, namep, names); name[names] = '/0'; value = getenv(name); ficlFree(name); if(value != NULL) { stackPushPtr(pVM->pStack, value); stackPushINT(pVM->pStack, strlen(value)); } else#endif stackPushINT(pVM->pStack, -1); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:34,
示例5: ficlUuidToStringvoidficlUuidToString(FICL_VM *pVM){#ifndef TESTMAIN char *uuid; uint32_t status;#endif uuid_t *u;#if FICL_ROBUST > 1 vmCheckStack(pVM, 1, 0);#endif u = (uuid_t *)stackPopPtr(pVM->pStack);#ifndef TESTMAIN uuid_to_string(u, &uuid, &status); if (status != uuid_s_ok) { stackPushPtr(pVM->pStack, uuid); stackPushINT(pVM->pStack, strlen(uuid)); } else#endif stackPushINT(pVM->pStack, -1); return;}
开发者ID:jaredmcneill,项目名称:freebsd,代码行数:26,
示例6: key/* key - get a character from stdin * * key ( -- char ) */static void key(FICL_VM *pVM){#if FICL_ROBUST > 1 vmCheckStack(pVM, 0, 1);#endif stackPushINT(pVM->pStack, getchar()); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:12,
示例7: pseconds/* seconds - gives number of seconds since beginning of time * * beginning of time is defined as: * * BTX - number of seconds since midnight * FreeBSD - number of seconds since Jan 1 1970 * * seconds ( -- u ) */static void pseconds(FICL_VM *pVM){#if FICL_ROBUST > 1 vmCheckStack(pVM,0,1);#endif stackPushUNS(pVM->pStack, (FICL_UNS) time(NULL)); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:17,
示例8: fliteralParen/********************************************************************* Floating point literal execution word.*******************************************************************/static void fliteralParen(FICL_VM *pVM){#if FICL_ROBUST > 1 vmCheckStack(pVM, 0, 1);#endif PUSHFLOAT(*(float*)(pVM->ip)); vmBranchRelative(pVM, 1);}
开发者ID:2asoft,项目名称:freebsd,代码行数:12,
示例9: Fdepth/********************************************************************* Do float stack depth.** fdepth ( -- n )*******************************************************************/static void Fdepth(FICL_VM *pVM){ int i;#if FICL_ROBUST > 1 vmCheckStack(pVM, 0, 1);#endif i = stackDepth(pVM->fStack); PUSHINT(i);}
开发者ID:2asoft,项目名称:freebsd,代码行数:15,
示例10: displayCellNoPadstatic void displayCellNoPad(FICL_VM *pVM){ CELL c;#if FICL_ROBUST > 1 vmCheckStack(pVM, 1, 0);#endif c = stackPop(pVM->pStack); ltoa((c).i, pVM->pad, pVM->base); vmTextOut(pVM, pVM->pad, 0); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:11,
示例11: ficlPnphandlersvoidficlPnphandlers(FICL_VM *pVM){#if FICL_ROBUST > 1 vmCheckStack(pVM, 0, 1);#endif stackPushPtr(pVM->pStack, pnphandlers); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:11,
示例12: pfload/* fload - interpret file contents * * fload ( fd -- ) */static void pfload(FICL_VM *pVM){ int fd;#if FICL_ROBUST > 1 vmCheckStack(pVM, 1, 0);#endif fd = stackPopINT(pVM->pStack); /* get fd */ if (fd != -1) ficlExecFD(pVM, fd); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:16,
示例13: pfclose/* fclose - close a file who's fd is on stack. * * fclose ( fd -- ) */static void pfclose(FICL_VM *pVM){ int fd;#if FICL_ROBUST > 1 vmCheckStack(pVM, 1, 0);#endif fd = stackPopINT(pVM->pStack); /* get fd */ if (fd != -1) close(fd); return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:16,
示例14: setParentWid/************************************************************************** setParentWid** FICL** setparentwid ( parent-wid wid -- )** Set WID's link field to the parent-wid. search-wordlist will ** iterate through all the links when finding words in the child wid.**************************************************************************/static void setParentWid(FICL_VM *pVM){ FICL_HASH *parent, *child;#if FICL_ROBUST > 1 vmCheckStack(pVM, 2, 0);#endif child = (FICL_HASH *)stackPopPtr(pVM->pStack); parent = (FICL_HASH *)stackPopPtr(pVM->pStack); child->link = parent; return;}
开发者ID:DangerDexter,项目名称:FreeBSD-8.0-dyntick,代码行数:19,
示例15: ms/* ms - wait at least that many milliseconds (FACILITY) * * ms ( u -- ) * */static void ms(FICL_VM *pVM){#if FICL_ROBUST > 1 vmCheckStack(pVM,1,0);#endif#ifdef TESTMAIN usleep(stackPopUNS(pVM->pStack)*1000);#else delay(stackPopUNS(pVM->pStack)*1000);#endif return;}
开发者ID:AhmadTux,项目名称:freebsd,代码行数:17,
示例16: FzeroGreater/********************************************************************* Do float 0> comparison r > 0.0.** f0> ( r -- T/F )*******************************************************************/static void FzeroGreater(FICL_VM *pVM){ CELL c;#if FICL_ROBUST > 1 vmCheckFStack(pVM, 1, 0); vmCheckStack(pVM, 0, 1);#endif c.i = FICL_BOOL(POPFLOAT() > 0); PUSH(c);}
开发者ID:2asoft,项目名称:freebsd,代码行数:16,
|