펌) 초보자용 C / C++ tip. - sizeof -

in #kr-dev7 years ago

예전에 ㅅㅅㅅ 한테 배운 것.

사실 난 세세한 문법들 신경안쓰며 짜던 버릇이 있었는데, ㅅㅅㅅ 덕에 폼을 좀 고쳤다.

생각날 때 마다 처음 공부하는 친구들에게 도움이 되도록 들려주마.


sizeof 는 연산자다. 함수처럼 괄호 안에 인자를 받지만 연산자라는 것.

그리고 컴파일 타임에 결정되기 때문에, 그 결과는 단순히 상수 형태로 프로그램에 내장된다.

즉, sizeof 많이 쓴다고 프로그램이 느려지지 않는다.

코드의 의도가 특정되지 않는 크기 요소의 상수들을 구체화하기 위해 적극적으로 써 주자.


숫자는 일반적이다. 예를 들어 2 라는 숫자는 우주의 크기만큼이나 많은 의미를 가질 수 있다.

즉 다형적 모호성에 빠진 다는 것. 반면 사과 두 개 이런건 구체적이어서 명확하다는 소리.

다른예를 들자면, 친구랑 식당에 갔을때, 뭐 먹을래? 그랬더니

빙그레 웃으면서 손가락 두 개를 펴더라. 그건 2번 세트를 먹겠다는건지,

니가 시킬것 두 개를 따라가겠다는건지, 2분 뒤에 시키겠다는건지 알 수가 없다.

좋은 프로그램은 주석 없이도 코드의 의도를 충분히 특정할 수 있게 해 주는 것이다.

당신도 몇 년 뒤에 당신의 코드를 보면 잠시 이해 안갈 수 있다.


난 sizeof( 타입이나 인스턴스 ) 와 같은 방법으로 크기를 구했었다.

ㅅㅅㅅ 가 그러더라. 타입이면 괄호가 필요하지만, 인스턴스면 괄호가 필요 없다고.

어 정말? 하고 해보니 되더라. ( 책 안읽고 코딩부터 해대는 내 버릇 )

type 은 instance ( 변수명 ) 에 비해 일반적이다. 따라서 모호하다.


이름은 쉽게 변하지 않거나 변하더라도 본래의 의미를 유지하지만, 타입은 변할 가능성이 크다.

unsigned short life = 10; // 남은 생명 10

였던 타입의 크기를 계산하기 위해 sizeof( unsigned short ) 를 했던 경우,

int life = 100000;

로 바뀌는 경우엔 life 의 타입만 int 로 바꾸는 실수를 할 수 있다.

따라서 sizeof life 를 사용하는게 현명하다.

오늘은 안녕~

원본 : http://gall.dcinside.com/board/view/?id=programming&no=745070&page=1&exception_mode=recommend

Sort:  

이 글의 원 저자이신가요?

아니요 퍼온거에요

Congratulations @nerdyoon! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!