[C언어] 데이터 타입 비교 - int, unsigned int, size_t
int 32bit 컴퓨터 기준으로 정수가 32bit (4byte) 크기라고 가정한다면 int 자료형은 2의 32제곱의 값(4,294,967,296)을 표현할 수 있다. 음수, 0, 양수를 포함하여 최소 -2,147,483,648에서 최대 2,147,483,647까지 표현하는 것이다. ex. 쥬니어네이버 동물농장 포인트는 21억이 최대였다. ex. 마인크래프트 레벨은 21억이 최대다. unsigned int unsigned int 자료형은 int의 범위를 양의 정수 범위로만 사용한 자료형이다. 따라서 양의 표현이 2배 늘어난다. 최소 0부터 최대 4,294,967,295까지 표현한다. ex. 바람의 나라 최대 경험치는 42.9억이다. size_t size_t는 a.k.a. 'long unsigned int..
2020. 10. 7.
[C언어] NULL, 0, NUL, '\0', undefined의 차이
malloc(), bzero() 등의 C언어 내장함수를 공부하면서 NULL, 0, NUL, '\0'을 접하게 된다. 공통점과 차이점을 정확하게 정리하고자 한다. 우선 NULL과 NUL은 구분되며, 비교항목을 NULL, 0 과 NUL, '\0' 과 undefined 로 나눌 수 있다. NULL, 0 비교 NULL은 널 포인터로서, (void *)0을 가리킨다. NULL 매크로는 , 등 여러 헤더파일에서 이미 정의돼있다. C언어에서 pointer와 정수는 서로 형 변환될 수 있는데, 두 데이터 타입 모두 4byte다. Null pointer는 정수 0으로 변환될 수 있고, 정수 0은 Null pointer로 변환될 수 있다. 즉, Null pointer는 메모리 주소 0을 가르키는 pointer라는 뜻이다...
2020. 10. 6.