关于putchar函数的几个问题putchar() 函数的函数体如下Char putchar(char c){\x05If(c==’\n’)\x05{\x05\x05If(RI)\x05\x05{\x05\x05\x05If(SBUF=X0ff)\x05\x05\x05{\x05\x05\x05\x05Do\x05\x05\x05\x05{\x05\x05\x05\x05\x05RI=0;\x05\x05\x05\x05
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 11:49:26
关于putchar函数的几个问题putchar() 函数的函数体如下Char putchar(char c){\x05If(c==’\n’)\x05{\x05\x05If(RI)\x05\x05{\x05\x05\x05If(SBUF=X0ff)\x05\x05\x05{\x05\x05\x05\x05Do\x05\x05\x05\x05{\x05\x05\x05\x05\x05RI=0;\x05\x05\x05\x05
关于putchar函数的几个问题
putchar() 函数的函数体如下
Char putchar(char c)
{
\x05If(c==’\n’)
\x05{
\x05\x05If(RI)
\x05\x05{
\x05\x05\x05If(SBUF=X0ff)
\x05\x05\x05{
\x05\x05\x05\x05Do
\x05\x05\x05\x05{
\x05\x05\x05\x05\x05RI=0;
\x05\x05\x05\x05\x05While(!RI);
}while(SBUF!=XON);// 这里的XON是什么?
RI=0;
}
}
While(!TI);
TI=0;
SBUF=0x0d;//这句话有个注释是OUTPUT CR ,
}
\x05If(RI)
\x05{
\x05\x05If(SBUF=X0ff)//这里的X0FF是什么?
\x05\x05{
\x05\x05\x05Do
\x05\x05\x05{
\x05\x05\x05\x05RI=0;
\x05\x05\x05\x05While(!RI);
}while(SBUF!=XON);
RI=0;
}
}
While(!TI);
TI=0;
Return(SBUF=c);
}
在上面的这个函数中,注释中的OUTPUT 整个函数能够稍微解释一下就更好啦.
关于putchar函数的几个问题putchar() 函数的函数体如下Char putchar(char c){\x05If(c==’\n’)\x05{\x05\x05If(RI)\x05\x05{\x05\x05\x05If(SBUF=X0ff)\x05\x05\x05{\x05\x05\x05\x05Do\x05\x05\x05\x05{\x05\x05\x05\x05\x05RI=0;\x05\x05\x05\x05
你只是把程序的一部分拿过来了.不过这个代码中的这个写法比较郁闷,比如说If(SBUF=X0ff),如果说是判断SBUF的值是不是和X0ff相等,那么也应该是使用“==”符号才对,如果不是你的代码中写的有问题,那就是我才识浅薄了,代码中的XON,XOFF应该是在别的地方有定义的一个常数,一般是位于程序开头或者头文件中,比如用define XON XXX ;define XOFF XXX,所以你要看全局了.不能断章取义.程序的大概意思就是if结构嵌套来判断了3个变量的值得状态,第一次是判断函数的参数char c是不是为换行符,然后判断变量RI为0还是非0,最后判断逻辑式SBUF==XOFF是不是成立,然后进入do{}while循环,而循环的退出条件则是逻辑式SBUF不等于XON成立.后面的程序也是大同小异的结构.而你说的有注释的那句OUTPUT CR,这个我没办法帮你解读,因为程序具体是干什么的我不是很清楚.很明显这只是一个工程的一部分,有些变量在程序片段中并没有定义或者声明,所以这个变量的其他使命也难以得之了.呵呵.相信你一定没问题.把程序都看完你就明白了.