gpt4 book ai didi

c - 在 C 中将一定数量的字符打印到 stdout 的最快方法

转载 作者:行者123 更新时间:2023-12-02 09:40:08 25 4
gpt4 key购买 nike

我必须将一定数量的空格打印到标准输出,但这个数量不是固定的。我正在使用 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 (对于这样一个简单的任务来说太复杂了)。

关于c - 在 C 中将一定数量的字符打印到 stdout 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5975378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com