cktfndmod.c

来自「支持数字元件仿真的SPICE插件」· C语言 代码 · 共 58 行

C
58
字号
/* * Copyright (c) 1985 Thomas L. Quarles */#include "prefix.h"#include <stdio.h>#include <math.h>#include "CKTdefs.h"#include "IFsim.h"#include "util.h"#include "SPerror.h"#include "suffix.h"RCSID("CKTfndMod.c $Revision: 1.1 $ on $Date: 91/04/02 12:07:32 $")intCKTfndMod(ckt,type,modfast,modname)    GENERIC *ckt;    int *type;    GENERIC **modfast;    IFuid modname;{    register GENmodel *mods;    if(modfast != NULL && *(GENmodel **)modfast != NULL) {        /* already have  modfast, so nothing to do */        if(type) *type = (*(GENmodel **)modfast)->GENmodType;        return(OK);    }     if(*type >=0 && *type < DEVmaxnum) {        /* have device type, need to find model */        /* look through all models */        for(mods=((CKTcircuit *)ckt)->CKThead[*type]; mods != NULL ;                 mods = mods->GENnextModel) {            if(mods->GENmodName == modname) {                *modfast = (char *)mods;                return(OK);            }        }        return(E_NOMOD);    } else if(*type == -1) {        /* look through all types (UGH - worst case - take forever) */         for(*type = 0;*type <DEVmaxnum;(*type)++) {            /* need to find model & device */            /* look through all models */            for(mods=((CKTcircuit *)ckt)->CKThead[*type];mods!=NULL;                    mods = mods->GENnextModel) {                if(mods->GENmodName == modname) {                    *modfast = (char *)mods;                    return(OK);                }            }        }        *type = -1;        return(E_NOMOD);    } else return(E_BADPARM);}

⌨️ 快捷键说明

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