📄 fcr.h
字号:
union ZMemory
{
int iNumber;
double dNumber;
struct{union{int *iArray;double *dArray;};int length;};
};
enum ZOperator
{
OP_AND, //与
OP_CALL, // . a => 调用函数于地址a
OP_CHANGESIGNALD,//改变符号
OP_CHANGESIGNALI,//改变符号
OP_COPYD, //复制栈顶数值
OP_COPYI, //复制栈顶数值
OP_D2I, // . a => 实数变整数(地址为栈顶偏移a)
OP_DELARRAYD, // . a => 删除一个实数数组(a为数组头地址)
OP_DELARRAYI, // . a => 删除一个整数数组(a为数组头地址)
OP_DELETE, //删除栈顶数(栈顶指针减一)
OP_EQUALD, //等于
OP_EQUALI, //等于
OP_EXIT, //程序结束
OP_GREATD, //大于
OP_GREATEQUALD, //大于等于
OP_GREATEQUALI, //大于等于
OP_GREATI, //大于
OP_I2D, // . a => 整数变实数(地址为栈顶偏移a)
OP_INPUTARRAYD, // . a => 输入实型数组值(a位数组头位置,下标在栈顶)
OP_INPUTARRAYI, // . a => 输入整型数组值(a位数组头位置,下标在栈顶)
OP_INPUTD, // . a => 输入实数后存于地址a
OP_INPUTI, // . a => 输入整数后存于地址a
OP_JUMP, // . a => 跳转于地址a
OP_JUMPC, // . a => 条件跳转于地址a
OP_LESSD, //小于
OP_LESSEQUALD, //小于等于
OP_LESSEQUALI, //小于等于
OP_LESSI, //小于
OP_LOADARRAYD, // . a => 导入实数数组值(a为数组头地址,下标在栈顶)
OP_LOADARRAYI, // . a => 导入整数数组值(a为数组头地址,下标在栈顶)
OP_LOADCONSTD, // . a => 到入实常数a
OP_LOADCONSTI, // . a => 导入整常数a
OP_LOADVARD, // . a => 导入实数于地址a
OP_LOADVARI, // . a => 导入整数于地址a
OP_MINUSD, //减
OP_MINUSI, //减
OP_MOD, //余
OP_NEWARRAYD, // . a => 申请一个实数数组(a为数组头地址,长度在栈顶)
OP_NEWARRAYI, // . a => 申请一个整数数组(a为数组头地址,长度在栈顶)
OP_NOT, //非
OP_NOTEQUALD, //不等于
OP_NOTEQUALI, //不等于
OP_NULL, //空操作,用于标志函数的头尾
OP_OR, //或
OP_OUTPUTD, //输出实数
OP_OUTPUTI, //输出整数
OP_OUTPUTS, // . a => 输出字符串于实地址a
OP_PARAMTRANSD, //参数传递,(sd为参数数目)
OP_PARAMTRANSI, //参数传递,(sd为参数数目)
OP_PLUSD, //加
OP_PLUSI, //加
OP_RETURN, // . a => 函数返回(a为当前函数的参数数目)
OP_RETURND, // . a => 函数返回(a为当前函数的参数数目)
OP_RETURNI, // . a => 函数返回(a为当前函数的参数数目)
OP_SAVEARRAYD, // . a => 存储实数数组值(a为数组头地址,数值在栈顶,下标在栈次顶)
OP_SAVEARRAYI, // . a => 存储整数数组值(a为数组头地址,数值在栈顶,下标在栈次顶)
OP_SAVED, // . a => 存储于地址a
OP_SAVEI, // . a => 存储于地址a
OP_SLASHD, //除
OP_SLASHI, //除
OP_TIMESD, //乘
OP_TIMESI, //乘
};
union ZSecond{
struct
{
int iNumber;
int nParam;
};
double dNumber;
char *string;
};
struct ZCode{
ZOperator op;
ZSecond sd;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -