【发布时间】:2020-09-20 04:10:32
【问题描述】:
我有以下代码sn-p,
int main()
{
int loop;
char * src = 0x20000000;
char * dest = 0x20000008;
for(loop = 0; loop < 8; loop++)
dest [loop] = src [loop];
}
这是一个有效的代码吗?如何优化逻辑以减少循环?
【问题讨论】:
-
通常最好的方法是直接调用
memcpy,它已经被比我们任何人聪明得多的人优化了:-) -
你有没有用你的编译器试过它,看看它对这个
char * src = 0x20000000;说了什么?在担心循环逻辑之前先这样做。 -
一个非常宽松但优化的编译器将被允许用
int main() { return 0; }替换整个代码,这在性能方面很难超越 ;-) -
欢迎来到 SO!具体到以上几点,
warning: initialization makes pointer from integer without a cast char * src = 0x20000000;。这里的代码有什么意义?