我必须将一定数量的空格打印到标准输出,但这个数量不是固定的。我正在使用 putchar(),但我不确定这是否很快。在 C 中将一定数量的字符打印到 stdout 的最快方法是什么?另外,我无法使用系统功能。
谢谢你的帮助!
我只想用fwrite
。简单的。正确的。简单的。
void put_spaces(int n)
{
static const char SPACES[32] = " ";
for (; n >= 32; n -= 32)
fwrite(SPACES, 32, 1, stdout);
if (n)
fwrite(SPACES, n, 1, stdout);
}
但请注意,天真的版本也相当快:
void put_spaces(int n)
{
while (n--)
putchar(' ');
}
为什么这么快?在大多数系统上,putchar
是一个大多数时候直接写入缓冲区的宏。如果您不确定它是否快,正确的答案是介绍您的应用程序,而不是“先优化”。
保持距离malloc
(这只是不必要的),puts
(这增加了一个'\n'
每次你调用它时),并且printf
(对于如此简单的任务来说太复杂了)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)