gpt4 book ai didi

c - 使迭代器成为指针会加速 C 循环吗?

转载 作者:行者123 更新时间:2023-12-02 05:31:58 28 4
gpt4 key购买 nike

我运行了以下命令:

#include <stdio.h>
typedef unsigned short boolean;

#define false 0
#define true (!false)
int main()
{
int STATUS = 0;
int i = 0;
boolean ret = true;
for(i = 0; i < 99999; i++)
{
ret = ret && printf("Hello, World.");
}
if(!ret)
{
STATUS = -1;
}

return STATUS;
}

它在不到一秒钟内完成。通常为 0.9 - 0.92。

然后我将 int i = 0; 更改为 int *i = 0; 现在我的执行时间不到 0.2 秒。为什么变速?

最佳答案

您的运行时间主要由打印到控制台所需的时间决定。 int* 上的 i++ 会将指针递增指针的大小。这将是 4 或 8,具体取决于您的计算机和编译器设置。根据您报告的数字,大概是 4 次。因此 printf 的执行次数仅为四分之一。

关于c - 使迭代器成为指针会加速 C 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644634/

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