gpt4 book ai didi

c++ - 使用数组偏移与指针递增之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:12 26 4
gpt4 key购买 nike

给定 2 个函数,哪个应该更快,是否有任何区别?假设输入数据非常大

void iterate1(const char* pIn, int Size)
{
for ( int offset = 0; offset < Size; ++offset )
{
doSomething( pIn[offset] );
}
}

对比

void iterate2(const char* pIn, int Size)
{
const char* pEnd = pIn+Size;
while(pIn != pEnd)
{
doSomething( *pIn++ );
}
}

这两种方法是否还有其他问题需要考虑?

最佳答案

很有可能,您的编译器优化器会创建一个 loop induction variable对于第一种情况,将其变成第二种情况。我希望优化后不会有什么不同,所以我倾向于第一种样式,因为我发现它更清晰易读。

关于c++ - 使用数组偏移与指针递增之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1663094/

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