[C] - sizeof 연산자

Chris Kim·2024년 9월 20일

프로그래밍언어

목록 보기
8/25

sizeof연산자는 프로그램에서 어떤 자료형이 얼만큼의 메모리를 차지하는지 나타내는 연산자다. 예를들어 sizeof(int)4다. sizeof연산자는 상수, 변수, 표현식등에 사용될 수 있다. 만약 표현식에 적용하는 경우, ()는 필요하지 않다. 다만 연산자들끼리의 우선순위에 있어, 혼동을 주지 않기위해 ()를 사용하는 것이 필요하다.
sizeof 의 값을 출력하는것에 주의가 필요하다. 왜냐하면 표현식에 대한 sizeof 연산 결과값의 자료형은 구현-정의 자료형이기 때문이며, 이는 size_t라고 불린다. size_t 자료형은 무부호 정수형임이 보장되므로 표현식에 대한 sizeof 연산활용은 casting 을 통해 사용하는 것이 가장 안전할 것이다. C89의 경우 다음과 같이 사용하는 것이다.

printf("Size of int: %lu\n", (unsigned long) sizeof(int));

C99에서는 size_tunsigned long보다 커질 수 있다. 그러나 C99에서 printfsize_t를 직접적으로 cast 없이 표현할 수 있다. 그것은 z라는 변환 규격자를 사용하는 것이다.

printf("Size of int: %zu\n". sizeof(int));
profile
회계+IT=???

0개의 댓글