计算机系统基础PA1(2)
写在前面
PA1的内容还是挺多的,只用一个博客写会看起来很臃肿,于是用这篇博客写接下的PA1
表达式求值
数学表达式求值



如果想要完成就不得不学学regex.h这个库中的函数了
接下来就都是看讲义和编程基本功了

我们先来思考一下如果是负数的负号可能会出现在什么位置?
“(” 后面 如: (-1*2)
表达式最开始的位置 如:-1+2
其他运算符后面 如:2*-1
根据这个我们扫描一遍tokens数组找到上述符合的负号,标记一下(可以新开一个枚举型叫TK_NEGATIVE)
然后我们在找主运算符的时候看到运算符类型是TK_NEGATIVE就可以特殊处理一下

其实就是几个API要认识一下就知道了:





看完system后我们也就可以回答这个问题了:


如果有除0,那么编译的时候会报错 ,ret接受到的值也不为了,也就continue
然后感觉可以不去管这个除0错误
监视点
扩展表达式求值的功能

这里有个扩展指针解引用的功能让我很疑惑
首先我的表达式里除了$t1 这样的寄存器和0x800000这样的16进制数位
都是10进制整数和运算符,没有变量p什么的
那么我这个*指针在表达式中应该咋用?
先空到这里吧!

浙公网安备 33010602011771号