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