指针增量与C中的索引增量相比如何



考虑以下两个代码:

void PrintLetter(char *src)
{
 while(*src != '')
 {
   printf("%c",*src);
   src++;
 }
}

void PrintLetter(char *src)
{
 int i;
 for(i=0;src[i];i++)
  printf("%c",src[i]);
}

两者在性能上有什么不同吗?

没有。编译器将执行其优化,而与您正在编写的表单无关。基础程序集代码是相同的。

任何性能差异都将取决于编译器。

一些小型嵌入式系统的编译器非常简单,可能会为其中一个生成与另一个略有不同的代码——尽管没有测试,很难猜测哪一个最终会"更好"(尽管如果我必须"盲目"猜测,我可能会选择第一个)。

在典型的桌面/服务器系统(如gcc、VC++、EDG)上使用编译器,无论哪种方式,您都可能获得(基本上)相同的结果,因此在它们之间进行选择纯粹是选择更可读的内容。

相关内容

  • 没有找到相关文章

最新更新