글
Chapter 13. 구조체
책 정리/좋은 프로그래밍 습관
2009. 9. 4. 21:14
1. typedef 를 사용해서 간편하게 선언을 하도록 하자.
2. 구조체는 선언을 하고 반드시 초기화를 하고 사용한다.
3. 구조체 포인터에 메모리를 할당해 줄 경우 구조체 내의 메모리 할당 된 부분 부터 해제를 하고
구조체 포인터의 메모리를 할당한다.
4. 구조체를 패킹한다!!
- typedef struct NODE
- {
- unsigned char A;
- unsigned char B;
- unsigned long C;
- } DATA;
- printf("DATA 의 크기는 %d 바이트다.", sizeof( DATA ) );
구조체의 크기는 1 + 1 + 4 해서 6바이트가 되어야 하지만 실제로 8바이트이다.
왜냐하면 32비트 시스템 들은 4바이트 정렬을 하기 떄문에 4바이트 단위로 정렬을 한다.
그래서 6바이트보다 큰 수 가운데 4로 나누어 떨어지는 가장 작은 수 인 8이 실행 결과로 나온다.
그러므로 구조체의 패킹 방법을 사용한다.
- typedef struct NODE
{ -
unsigned char A;
-
unsigned char B;
-
unsigned long C;
- } _attribute_ ((packed)) DATA;
이 글은 스프링노트에서 작성되었습니다.
'책 정리 > 좋은 프로그래밍 습관' 카테고리의 다른 글
Chapter 15. 전처리기 (0) | 2009.09.04 |
---|---|
Chapter 14. 공용체 (0) | 2009.09.04 |
Chapter 12. 함수 포인터 (0) | 2009.09.04 |
Chapter 11. 포인터 (0) | 2009.09.04 |
Chapter 10. 연산자 (0) | 2009.09.04 |