首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C中printf()和put()有什么区别?

在C中printf()和put()有什么区别?
EN

Stack Overflow用户
提问于 2010-03-16 21:03:29
回答 6查看 208K关注 0票数 197

我知道你可以用printf()puts()打印。我还可以看到,printf()允许您对变量进行插值和格式化。

puts()仅仅是printf()的原始版本吗?是否应该在没有字符串插值的情况下将其用于所有可能的printf()

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-16 21:06:06

putsprintf简单,但要注意前者会自动附加一个换行符。如果这不是您想要的,您可以将字符串fputs到stdout或使用printf

票数 161
EN

Stack Overflow用户

发布于 2012-06-17 16:04:56

除了格式化之外,如果成功,puts将返回一个非负整数;如果不成功,则返回EOF;而printf将返回打印的字符数(不包括尾随的null)。

票数 37
EN

Stack Overflow用户

发布于 2013-09-13 03:21:33

在简单的情况下,编译器将对printf()的调用转换为对puts()的调用。

例如,下面的代码将被编译成我下面展示的汇编代码。

代码语言:javascript
复制
#include <stdio.h>
main() {
    printf("Hello world!");
    return 0;
}
代码语言:javascript
复制
push rbp
mov rbp,rsp
mov edi,str.Helloworld!
call dword imp.puts
mov eax,0x0
pop rbp
ret

在本例中,我使用了GCC 4.7.2版,并用gcc -o hello hello.c编译了源代码。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2454474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档