본문 바로가기
코딩취미/C,C++

[c언어] sizeof 와 ftell 의 차이점, 사용 목적

by 브링블링 2023. 12. 15.
728x90

sizeof 와 ftell 의 차이점과 사용 목적 정리

sizeofftell은 서로 다른 목적으로 사용되는 것이기 때문에, 파일 크기를 계산할 때 sizeof를 사용하지 않고 ftell을 사용하는 이유가 있습니다.

  1. sizeof:
    • sizeof는 C/C++에서 데이터 타입 또는 변수의 크기를 바이트 단위로 반환하는 연산자입니다.
    • sizeof는 컴파일 시간에 계산되며, 변수의 정적인 크기를 반환합니다.
    • 파일의 크기는 런타임에 결정되는 동적인 값이므로, sizeof는 파일 크기를 구하는 데에 사용할 수 없습니다.
  2. ftell:
    • ftell 함수는 파일 포인터의 현재 위치를 바이트 단위로 반환합니다.
    • 파일 포인터의 현재 위치는 파일의 크기와 직접적으로 연관되어 있습니다. 파일의 끝으로 이동하면 파일의 크기를 알 수 있습니다.
    • ftell은 런타임에 동작하며 파일의 현재 크기를 동적으로 계산할 수 있습니다.

특징 정리

특 징 sizeof ftell
용도 데이터 타입 또는 변수의 크기를 반환 파일 포인터의 현재 위치를 반환
반환 값 정적인 크기 (컴파일 시간에 결정) 동적인 크기 (런타임에 결정)
사용하는 대상 변수, 데이터 타입 파일 스트림 (주로 파일 크기 계산에 사용)
계산 시점 컴파일 시간 런타임
파일 크기 계산에 사용 여부 사용 불가능 주로 사용
사용 예시 C int x; size_t size = sizeof(x); C FILE *file; fseek(file, 0, SEEK_END); size_t size = ftell(file);

 

사용목적

sizeof는 정적인 크기를 구하는 데에 사용되며, 주로 변수나 데이터 타입의 크기를 확인할 때 활용됩니다. 반면에 ftell은 파일 포인터의 현재 위치를 통해 파일 크기를 동적으로 구하는 데에 사용되어 파일 입출력에서 자주 활용됩니다.

728x90