puts 或 putchar 是否更适合打印换行符?
Is puts or putchar better for printing just a newline?
对于打印 仅 换行,哪个更好(在性能和最佳实践方面):
putchar('\n')
或 puts("")
据我了解,putchar
输出单个字符,puts
输出一串字符。 Forget about printf
.
我倾向于使用 puts
因为它更短,但是 ("")
只是 感觉 错误。
哪个更快更好?
它们之间的任何速度差异都将是微不足道的,但 putchar
可能更快,因为它采用单个 char 参数。
更重要的是,putchar('\n')
是说出你的意思,而puts("")
不是。
尽管 puts() 允许您输出字符串,但您输出的是只有一个字符(换行符)的字符串,因此结果和性能应该与使用 putchar() 相同.
理论上,一个需要一个指针,一个额外的字节,另一个不需要。同样,一个人可能需要更多的指令,并可能会破坏一些 i-cache
,这可能很糟糕。在实践中,两者之间的差异几乎可以忽略不计。
但是,我个人仍然会使用 putc
或 putchar
,因为代码更容易让其他人阅读和理解。
一个好的编译器会为下面的代码生成相同的优化代码,所以这不是性能问题。
putchar('\n');
puts("");
使用能更好地表达代码意图的代码。这通常取决于正在打印的其他内容。
// Example 1
putchar('(');
putchar(ch);
putchar(')');
putchar('\n'); // Better choice
// puts("");
// Example 2
puts(name);
puts(rank);
puts(serial_number);
// putchar('\n');
puts(""); // Better choice
对于打印 仅 换行,哪个更好(在性能和最佳实践方面):
putchar('\n')
或 puts("")
据我了解,putchar
输出单个字符,puts
输出一串字符。 Forget about printf
.
我倾向于使用 puts
因为它更短,但是 ("")
只是 感觉 错误。
哪个更快更好?
它们之间的任何速度差异都将是微不足道的,但 putchar
可能更快,因为它采用单个 char 参数。
更重要的是,putchar('\n')
是说出你的意思,而puts("")
不是。
尽管 puts() 允许您输出字符串,但您输出的是只有一个字符(换行符)的字符串,因此结果和性能应该与使用 putchar() 相同.
理论上,一个需要一个指针,一个额外的字节,另一个不需要。同样,一个人可能需要更多的指令,并可能会破坏一些 i-cache
,这可能很糟糕。在实践中,两者之间的差异几乎可以忽略不计。
但是,我个人仍然会使用 putc
或 putchar
,因为代码更容易让其他人阅读和理解。
一个好的编译器会为下面的代码生成相同的优化代码,所以这不是性能问题。
putchar('\n');
puts("");
使用能更好地表达代码意图的代码。这通常取决于正在打印的其他内容。
// Example 1
putchar('(');
putchar(ch);
putchar(')');
putchar('\n'); // Better choice
// puts("");
// Example 2
puts(name);
puts(rank);
puts(serial_number);
// putchar('\n');
puts(""); // Better choice