我知道你可以用printf()
和puts()
打印。我还可以看到,printf()
允许您对变量进行插值和格式化。
puts()
仅仅是printf()
的原始版本吗?是否应该在没有字符串插值的情况下将其用于所有可能的printf()
?
发布于 2010-03-16 21:06:06
puts
比printf
简单,但要注意前者会自动附加一个换行符。如果这不是您想要的,您可以将字符串fputs
到stdout或使用printf
。
发布于 2012-06-17 16:04:56
除了格式化之外,如果成功,puts
将返回一个非负整数;如果不成功,则返回EOF
;而printf
将返回打印的字符数(不包括尾随的null)。
发布于 2013-09-13 03:21:33
在简单的情况下,编译器将对printf()
的调用转换为对puts()
的调用。
例如,下面的代码将被编译成我下面展示的汇编代码。
#include <stdio.h>
main() {
printf("Hello world!");
return 0;
}
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
编译了源代码。
https://stackoverflow.com/questions/2454474
复制相似问题