no swim no life

CODE Complete, 31: 배치와 방식 본문

work/fundamental

CODE Complete, 31: 배치와 방식

달려간다 2008. 11. 21. 08:46

한 줄에 지나치게 많은 연산을 수행

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' 카테고리의 다른 글

CODE complete, 32: 문서화에 들일 노력을 코드에 쏟아 부어라.  (0) 2008.11.28
(작성) 변수  (1) 2008.09.25
Byte alignment  (0) 2008.09.04
Comments