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,这可能很糟糕。在实践中,两者之间的差异几乎可以忽略不计。

但是,我个人仍然会使用 putcputchar,因为代码更容易让其他人阅读和理解。

一个好的编译器会为下面的代码生成相同的优化代码,所以这不是性能问题。

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