有人能帮我注释一下这个程序吗?

来源:百度知道 编辑:UC知道 时间:2024/07/08 00:33:05
有很多看不明白的地方
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
char token[61]; /*存放表达式字符串的数组*/
int n=0;
void error(void) /*报告错误函数*/
{
printf("ERROR!\n");
exit(1);
}
void match(char expected) /*检查字符匹配的函数*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}
double term(void); /*计算乘除的函数*/
double factor(void); /*处理括号和数字的函数*/
double exp(void) /*计算加减的函数*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':match('+');
temp+=term();
break;
case'-':match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=factor();
while((token[n]=='*')||(token[n]=='/'))
switch(token[n])
{

函数都很简单,只是迭代太多,容易看晕,写了注释也没用。
着重理解下面四个函数的功能
void match(char expected) //实际功能是获取下一个字符
double exp(void) /*计算加减的函数,第二个运算数由term()返回*/
double term(void); /*计算乘除的函数,第二个运算数由factor()返回*/
double factor(void); /*处理括号和数字的函数,括号中的内容可看作一个新的表达式*/
建议你自己写几个运算式,对照程序一步步来理解

太长了 。