목록PSI (1)
no swim no life
CODE Complete, 31: 배치와 방식
한 줄에 지나치게 많은 연산을 수행 strcpy( char * t, char * s ) { while ( *++t = *++s ); } strcpy( char * t, char * s ) { do { ++t; ++s; *t = *s; } while ( *t != '\0' ); } t 와 s 는 *s 가 *t 에 복사되기 전에 증가, 첫 번째 문자가 빠진다. 5,000,000 문자열을 복사할 때 첫 번째 버전은 4.81초, 두 번째 버전은 4.35초가 걸렸다. 이 경우에서는 "머리를 굴린" 버전이 11% 정도 속도가 느렸으며, 결국 쓸데없이 머리를 굴린 꼴이 되었다.
work/fundamental
2008. 11. 21. 08:46