항목 33. 인라인을 선별적으로 사용하라. 우선 인라인 함수란? http://janine.egloos.com/1330489 http://blog.naver.com/phoogu?Redirect=Log&logNo=110017171831 트랙백도 추가해 주는 센스! 이유 1. 코드의 크기가 증가되어, 실행파일의 크기가 크게 된다. - 이 때문에 실행시 많은 작업을 하게 된다. 2. 명령어 캐시의 적중률을 감소시켜 캐시 메모리에서 메인 메모리로의 명령어 페치 속도를 떨어뜨린다. - 명령어 캐쉬란? CPU에 보면 L1 캐쉬 L2 캐쉬 등이 있는데, 여기에 이 명령어들이 올라간다. 그리고 명령어를 기억해두었다가 같은 명령어가 들어오면 바로 수행하게 되지만, ... 인라인의 남용으로 계속 이 명령어 캐쉬가 바뀌므로써..
분류 전체보기 검색 결과
항목 32. 변수 정의는 가능한 뒤로 늦춰라 우선 1. C 철학에 따르자면 변수의 정의는 블록의 시작부분에 놓아야 한다! 필자는 이제 그 철학은 버리라고 말한다(.. 여간 내기가 아닌데!) 이유 1. 부담스럽다. - 변수 선언은 생성자를 동반하고, 소멸자도 동반한다. 많으면 많을수록 부담스럽다. 2. 부자연 스럽다. - 아직 쓰지도 않을 변수를 미리 하여, 가독성을 떨어 뜨린다. 해결 방법 1. 가능한 변수 정의가 필요할때까지 코딩하다가 필요할대만 정의하여 사용한다! 필자의 생각 1. 이제 블록을 열자마다 변수를 정의하는 습관자체를 버릴 때다! 개인적 생각 1. 조건문 안에서는 변수 선언이 안된다! 잘 파악해서 최대한 미루어 변수 선언하라는 뜻이다. 1. 확인해 보았는데, VC2005 C++ 에서 조건문..
좋은 글이여서 퍼왔답니다!http://www.jong10.com/246 C++의 마지막 표준은 1998년도에 제정된 C++98이었습니다. 현재는 C++0x가 제정중입니다. 2008년에 나오면 C++08이 되고, 2009년에 나오면 C++09라고 불리우겠죠. 아무튼, 류광님의 블로그에도 가끔씩 소식이 올라오고, 여기저기서 소식이 들리고 있습니다. 항간에는 2000년대에 안나오고, 2010년대로 넘어간다는 소문도 있습니다. (C++1x 라고.. -_-;) 이번에 바뀌는 부분에 대해선, 정말 마음에 드는 부분들이 많이 있는데, 간단히 몇가지 살펴봤습니다. #include typedef std::vector > Table; // OK typedef std::vector>> F..
STL #Standard Template Library STL은 Alexander Stepanov가 Meng Lee와 함께 template으로 구현한 라이브러리 입니다. 1993년 표준화가 이루어질쯤 Alexander Stepanov의 STL을 보고 C++ 표준 위원회의 만장 일치에 의해서 표준에 합류 하게 되었고 STL로 인해 표준화는 몇년 늦어진 1998년에야 이루어 지게 됬습니다. (이 기간 언어적인 확장은 없었으며 explicit 같은 제한적인 사항이 몇개 추가 되었습니다.) STL은 공식적인 용어라기 보다 관용적으로 쓰는 C++의 라이브러리 입니다. STL의 범위는 C++의 표준 라이브러리중 알고리즘과 Iterator를 사용하는 컨테이너 객체를 일반적으로 말합니다. STL의 의의중 하나는 C++..
항목 31. 지역 객체에 대한 참조나 함수 내에서 new를 이용해 초기화된 포인터를 가리키는 참조를 리턴하지 말라 : 정말 제목을 자세하게 적었다.. 이유 1. 항목 29와 중복 2. new에 대해선 관리가 상당히 까다롭게 변한다. (빈대 잡으려다 집태운 격, 배보다 배꼽이 큰 격) 해결 방법 1. 아예 사용 하지 말라니까... 참조 내부 객체가 있는 함수가 내부객체의 포인터나 레퍼런스를 리턴할 시 발생하는 일 1. 동적(?)으로 내부 객체 생성(동적인지는 모르겠으나 그 상황이 동적메모리 처럼 보인다) 2008/06/07 02:30 수정 1. 스택에 함수내부에서 사용될 객체를 생성 2. 내부 객체 사용 3. 내부객체 리턴 4. 바로 내부 객체 파괴 개인적 생각 이것을 피하기 위해서 new을 사용한다면, ..
항목 30. 접근하기 어려운 멤버에 대한 비상수 포인터나 레퍼런스를 리턴하는 멤버 함수 사용을 피해라 이유 1. private의 데이터를 포인터나 레퍼런스로 리턴은 정보은닉 자체를 파괴하는 행위이다. - 설계를 할때 성능에 중점을 둔다면 이런 경우가 생길수 있다고 필자는 설명한다. 해결방법 1. 우선 하지 말라; 2. 만약 할수밖에 없다면, 상수로써 전달한다. const 주의점 1. 만약 상수성을 제거해야지만 사용해되어야 한다면, 그 데이터를 사용 할때 데이터가 변경되지 않는다는 보장이 있어야 한다, 2008/06/28 03:25 추가 주의점 1번의 경우, 내부 데이터를 상수성이 있는 핸들로 받아놨는데, 만약, 그것이 함수에 들어 갈때, 상수성을 없에야만 한다면(간혹 이런 함수들이 있었다.), 그 함수 ..
최근댓글