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

📄 calculator.h

📁 嵌入式linux下的一个高级计算器程序的源码
💻 H
字号:
//   $Id: calculator.h,v 1.3 2002/12/17 15:31:55 gerhard Exp gerhard $// Define Errornumbers to make it easier to find typos in formulas#include <stdio.h>#define   ERR_NOERROR     0#define   ERR_NOBRACKET   1  #define   ERR_BRACKETMIS  2#define   ERR_PREEND      3#define   ERR_TOOMUCH     4#define   ERR_NOARG       5#define   ERR_UNKNOWN     6#define   ERR_ILLEGAL     7#define   ERR_FPARAM      8#define   ERR_DIVZERO     9#define   ERR_DOMAIN     10#define   ERR_FKTANZ     11#define   ERR_PARANZ     12#ifdef _CALCULATOR_char     *calculator_errtxt[] = {  "( missing!",   "no function arg",  "unexpected EOL",  "too much param",  "no arguments",  "unknown function",  "illegal character",  "no function param",  "division by zero",  "domain",  "no mem for funtion",  "number of param"  };#else  extern char *calculator_errtxt[];#endif#define CALCULATOR_HISTORY    50#define CALCULATOR_VARS      100#define CALCULATOR_FKT        50#define CALCULATOR_FHISTORY  100//  Variables Definitions for Calculator Subroutinestypedef struct {  char     *Name;                  // Name of the Variable  double    Valu;                  // Calculated Value  int       Ref;                   // Latest Refernece } CALCVAR;// Function Definition typedef struct {  char     *Name;                  // Name of Function  char     *Def;                   // Formula of Function  CALCVAR   Var[CALCULATOR_VARS];  // up to 100 local variables  int       Vars;                  // variables count  double    last;                  // last calculated value  int       RefCnt;                // latest Reference} CALCFKT;#ifdef _CALCULATOR_                                   // List of user-defined functions;  CALCFKT   CalculatorFkt[CALCULATOR_FKT];                                      // the first entry is used for the                                   // formula analysis and not used                                    // for function definitions  int       CalculatorFktAnz = 0;  // current number of functions   double    CalculatorHistory[CALCULATOR_HISTORY];  // result history  int       CalculatorHistCnt = 0; // number of entries in result history  int       CalculatorError  = 0;  // last Error  int       CalculatorLevel  = 0;  // nesting level   double    CalculatorZero   = 0.; // predefined Zero-Value  double    CalculatorRes    = 0.; // last result for function ANS  int       CalculatorRad    = 1;  // Flag for RAD/DEG in trig. functions  int       CalculatorFmt    = 1;  // Flag for format of resultdisplay  int       CalculatorAutoAns = 1;  int       CalculatorAutoHighlight = 1;  double    CalculatorPI     = 3.141592653589793;  char     *CalculatorCmdHistory[CALCULATOR_FHISTORY];  int       CalculatorCmdHistoryAnz;      // ehem ihist  int       CalculatorCmdCurhist;#else  extern CALCFKT   CalculatorFkt[CALCULATOR_FKT];  extern int       CalculatorFktAnz;  extern double    CalculatorHistory[CALCULATOR_HISTORY];  extern int       CalculatorHistCnt;  extern int       CalculatorError;  extern int       CalculatorLevel;  extern double    CalculatorZero;  extern double    CalculatorRes;  extern int       CalculatorRad;  extern int       CalculatorFmt;  extern int       CalculatorAutoAns;  extern int       CalculatorAutoHighlight;  extern double    CalculatorPI;  extern char     *CalculatorCmdHistory[CALCULATOR_FHISTORY];  extern int       CalculatorCmdHistoryAnz;      // ehem ihist  extern int       CalculatorCmdCurhist;#endifvoidInsertVariable(char *name, double var);doubleCalculateFkt(char *text, int *end, CALCFKT *cal);double Calculator(char *formel, CALCFKT *cal);doubleCalculate_Formula (char *formula);voidWriteHistory (FILE *config);voidReadHistory (FILE *config);//  Local Variables: ***//  mode:c++ ***//  End: ***

⌨️ 快捷键说明

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