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

📄 exprint.c

📁 数学表达式计算和解析 用c语言编写的,内含有例.速度较快
💻 C
字号:
/* 
    File: ExprInt.c
    Auth: Brian Allen Vanderburg II
    Date: Thursday, May 1, 2003
    Desc: Functions for the internal workings of ExprEval

    This file is part of ExprEval.
*/

/* Includes */
#include "expreval.h"
#include "exprincl.h"
#include "exprint.h"

/* This function evaluates each subnode.  The result
   is the value of the last subnode */
EXPR_FUNCTIONSOLVER(__exprMultiFunc)
    {
    int pos;
    int err;
    EXPRTYPE tmp;

    for(pos = 0; pos < count; pos++)
        {
        EXPR_EVALNODE(pos, tmp);
        }

    *val = tmp;

    return EXPR_ERROR_NOERROR;
    }

/* Function for addition */
EXPR_FUNCTIONSOLVER(__exprAddFunc)
    {
    EXPRTYPE val1, val2;
    int err;

    EXPR_REQUIRECOUNT(2)

    EXPR_EVALNODE(0, val1);

    EXPR_EVALNODE(1, val2);

    *val = val1 + val2;

    return EXPR_ERROR_NOERROR;
    }

/* Function for subtraction */
EXPR_FUNCTIONSOLVER(__exprSubFunc)
    {
    EXPRTYPE val1, val2;
    int err;

    EXPR_REQUIRECOUNT(2);

    EXPR_EVALNODE(0, val1);

    EXPR_EVALNODE(1, val2);

    *val = val1 - val2;

    return EXPR_ERROR_NOERROR;
    }

/* Function for multiplication */
EXPR_FUNCTIONSOLVER(__exprMulFunc)
    {
    EXPRTYPE val1, val2;
    int err;

    EXPR_REQUIRECOUNT(2);

    EXPR_EVALNODE(0, val1);

    EXPR_EVALNODE(1, val2);

    *val = val1 * val2;

    return EXPR_ERROR_NOERROR;
    }

/* Function for division */
EXPR_FUNCTIONSOLVER(__exprDivFunc)
    {
    EXPRTYPE val1, val2;
    int err;

    EXPR_REQUIRECOUNT(2);

    EXPR_EVALNODE(0, val1);

    EXPR_EVALNODE(1, val2);

    /* dividing by zero? */
    if(val2 == 0.0)
        {
        EXPR_RETURNSOFTERR(EXPR_ERROR_DIVBYZERO);
        }

    *val = val1 / val2;

    return EXPR_ERROR_NOERROR;
    }

/* Function for negative */
EXPR_FUNCTIONSOLVER(__exprNegFunc)
    {
    EXPRTYPE val1;
    int err;

    EXPR_REQUIRECOUNT(1);

    EXPR_EVALNODE(0, val1);

    *val = -val1;

    return EXPR_ERROR_NOERROR;
    }

⌨️ 快捷键说明

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