日期:2014-05-16  浏览次数:20696 次

关于printf()的问题
大家有没有遇到过这样的问题。我要修改别人写的一个函数,原来的那个函数中有printf()语句,在不考虑是判断引起的作用的情况下我再加入一些printf()语句,这个时候就要出错,有时候编不过去,有时候我要打印的东西死活打印不出来。为什么只有原来的printf()能用呢,我一直有这样的郁闷。。。我知道可能是因为用的不是标准库,但是我自己写的printf()语句也是比着他的规则写的呀,怎么就打印不出来,好着急。。。

------解决方案--------------------
你看printf的参数,是不是有非法指针,或者数组越界之类。
------解决方案--------------------
有这么奇怪的事,举个例子看看?
------解决方案--------------------
无源码无真相!!
如果编译都出错的话,很有可能是参数问题。
还有printf是向stdout写,stdout通常默认是有缓冲的,而stderr是无缓冲的,要是出错输出什么的,建议用fprintf向stderr写
------解决方案--------------------
可以考虑的一个方向是,有的时候一条printf的内容如果没有'\n',内容会留在缓冲中,不会打出来,\n相当于一次flush