计算机系统基础PA1(2)

 

写在前面

  PA1的内容还是挺多的,只用一个博客写会看起来很臃肿,于是用这篇博客写接下的PA1

 

表达式求值

数学表达式求值

  

   

   

   

   如果想要完成就不得不学学regex.h这个库中的函数了

    博客1<----  博客2<-----

  接下来就都是看讲义和编程基本功了

  

   

   我们先来思考一下如果是负数的负号可能会出现在什么位置?

    “(” 后面 如: (-1*2)

    表达式最开始的位置 如:-1+2

    其他运算符后面 如:2*-1

    根据这个我们扫描一遍tokens数组找到上述符合的负号,标记一下(可以新开一个枚举型叫TK_NEGATIVE)

  然后我们在找主运算符的时候看到运算符类型是TK_NEGATIVE就可以特殊处理一下

 

  

   

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

   

 

  

   

 

   

   

 

 

   

   

   

   

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

   

   

   如果有除0,那么编译的时候会报错 ,ret接受到的值也不为了,也就continue

  然后感觉可以不去管这个除0错误

 

 

 

监视点

  

扩展表达式求值的功能

  

   

  这里有个扩展指针解引用的功能让我很疑惑

   首先我的表达式里除了$t1 这样的寄存器和0x800000这样的16进制数位

   都是10进制整数和运算符,没有变量p什么的

    那么我这个*指针在表达式中应该咋用?

    先空到这里吧!

 

 

 

 

 

posted @ 2023-07-28 14:56  次林梦叶  阅读(158)  评论(0)    收藏  举报