考虑下面的代码(p
的类型是 unsigned char*
,而 bitmap->width
的类型是某种整数类型,确切地说是未知的,这取决于我们使用的外部库的版本) :
for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x)
{
*p++ = 0xAA;
*p++ = 0xBB;
*p++ = 0xCC;
}
是否值得优化它[ . . ]
有没有可能通过书面形式产生更有效的结果:
unsigned width(static_cast<unsigned>(bitmap->width));
for (unsigned x = 0; x < width; ++x)
{
*p++ = 0xAA;
*p++ = 0xBB;
*p++ = 0xCC;
}
还是编译器根本不需要优化?
您认为什么是“更好的”代码?
来自编辑(艾克)的注释: 对于那些对三振出局的文字感到好奇的人来说,原来的问题,按照措辞,是偏离主题的危险接近,尽管得到了积极的反馈,但是已经非常接近关闭了。这些已经被剔除了。然而,请不要惩罚回答这些问题的回答者。