put或putchar更适合打印换行吗?

时间:2016-01-14 01:41:07

标签: c newline stdio

打印换行符更好(在性能和最佳实践中):

putchar('\n')puts("")

根据我的理解,putchar输出一个字符,puts输出一串字符。 Forget about printf

我倾向于使用puts,因为它更短,但只是("")感觉错误。

哪个更快更好?

4 个答案:

答案 0 :(得分:8)

它们之间的任何速度差异都是微不足道的,但putchar可能更快,因为它需要一个char参数。

更重要的是,putchar('\n') 表示您的意思,而puts("")则不是。

答案 1 :(得分:4)

理论上,一个需要一个指针,一个额外的字节,另一个不需要。同样,人们可能需要更多指令并可能会导致一些i-cache,这可能会很糟糕。实际上,两者之间的差异几乎可以忽略不计。

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

答案 2 :(得分:1)

一个好的编译器会为下面的代码发出相同的优化代码,因此它不是性能问题。

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

答案 3 :(得分:0)

即使puts()允许您输出字符串,您输出的字符串只有一个字符(换行符),因此结果和性能应与使用putchar()相同。 / p>