dhyana 发表于 2010-1-5 13:41:50

求教!putchar函数输出0x0A的问题

keil程序中写代码如下
putchar(0x0A);
应该是输出0x0A
但是不管是软件仿真还是电路输出,均是 0x0D 0x0A
putchar必然给我加上一个0x0D
查了keil的putchar.c文件,发现它确实自动加入0x0D
问题:
自动加入0x0D有什么用?
在不修改keil原有文件的情况下,如何只输出0x0A?

zht9961020 发表于 2010-1-5 14:37:39

自动变成了换行吧

eduhf_123 发表于 2010-1-5 14:51:32

“换行”自动变成了“回车”+“换行”

517456 发表于 2010-1-5 14:53:44

应该是系统库的问题。不要使用系统自带的库函数看看。

dhyana 发表于 2010-1-5 18:36:06

向keil投降了~
用自己的函数在本项目中代替putchar没有问题。还有2个问题

1 为什么keil要使用这个“自动”却自作聪明的函数实现

2 我已经有好多个项目有这个问题 ,不希望一个一个的修改,只好修改keil库函数了。具体操作有谁能够指点一二,putchar.c我已经修改过了,如何让keil编译使用新的文件呢 ?希望修改好了之后我的其它项目只需要编译一下下就好了 。

eduhf_123 发表于 2010-1-7 11:25:00

请看这里和这里。

WINDOWS平台、MAC平台和*NIX平台的差别。

dhyana 发表于 2010-1-7 13:37:01

关于回车和换行我明白。
我是想知道为什么putchar这个函数和字面上的解释不同啊。 putchar 难道不是put a char 么~~~
结果却是 put a char ,and parse a char

eduhf_123 发表于 2010-1-14 04:01:46

这只是Keil的库函数的作者(们)为保证库(在不同平台之间)的兼容性而做的一点小动作而已。


C语言中还有大名鼎鼎的getchar()函数问题呢——从字面上看,它“get”的应该是个“char”,但实质上,getchar()函数的返回值是实实在在的int型,不可深究、不可深究……

z1234 发表于 2010-1-14 08:17:47

用老版本的Keil的飘过,经常用Putchar未发现此种现象。

bihan163 发表于 2013-8-29 08:14:42

z1234 发表于 2010-1-14 08:17 static/image/common/back.gif
用老版本的Keil的飘过,经常用Putchar未发现此种现象。

哪个版本?
页: [1]
查看完整版本: 求教!putchar函数输出0x0A的问题