반응형
sizeof 와 ftell 의 차이점과 사용 목적 정리
sizeof와 ftell은 서로 다른 목적으로 사용되는 것이기 때문에, 파일 크기를 계산할 때 sizeof를 사용하지 않고 ftell을 사용하는 이유가 있습니다.
- sizeof:
- sizeof는 C/C++에서 데이터 타입 또는 변수의 크기를 바이트 단위로 반환하는 연산자입니다.
- sizeof는 컴파일 시간에 계산되며, 변수의 정적인 크기를 반환합니다.
- 파일의 크기는 런타임에 결정되는 동적인 값이므로, sizeof는 파일 크기를 구하는 데에 사용할 수 없습니다.
- 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은 파일 포인터의 현재 위치를 통해 파일 크기를 동적으로 구하는 데에 사용되어 파일 입출력에서 자주 활용됩니다.
반응형
'코딩취미 > C,C++' 카테고리의 다른 글
[c언어] fread, fseek, fwrite 전달인자와 사용방법 (파일 입출력) (0) | 2023.12.17 |
---|---|
파일 복사 시, copy 명령어를 쓰지 않고 버퍼를 사용하는 이유 (0) | 2023.12.16 |
[C언어] fopen 대신 fopen_s 를 사용하는 이유, 특징 정리 (0) | 2023.12.14 |
[C언어] C11 : ISO/IEC 9899:2011 특징과 내용 (0) | 2023.12.13 |
[MFC] CCmdUI 의 특징과 기능 (0) | 2023.12.13 |