
sizeof 함수는 구조체의 멤버 변수의 크기를 고려하지 않습니다. 구조체의 멤버 변수는 구조체의 내부 구현에 대한 정보이기 때문에, sizeof 함수는 구조체의 크기를 계산할 때 멤버 변수의 크기를 고려하지 않습니다.
예를 들어, 다음과 같은 구조체가 있다고 가정해 보겠습니다.
#hostingforum.kr
c
struct Person {
char name[10];
int age;
};
sizeof 함수를 사용하여 Person 구조체의 크기를 계산하면, 다음과 같은 결과가 나옵니다.
#hostingforum.kr
c
printf("%lun", sizeof(struct Person));
이때, 구조체의 멤버 변수인 name 변수의 크기는 10-byte가 아닌 1-byte입니다. sizeof 함수는 구조체의 멤버 변수의 크기를 계산할 때, 멤버 변수의 타입을 사용하여 크기를 계산합니다. 따라서, char 타입의 멤버 변수는 1-byte로 계산됩니다.
만약, 구조체의 멤버 변수의 크기를 알고 싶다면, 멤버 변수의 타입을 사용하여 크기를 계산하거나, 멤버 변수의 크기를 직접 계산할 수 있습니다.
#hostingforum.kr
c
printf("%lun", sizeof(struct Person) - sizeof(int));
이 코드는 Person 구조체의 크기에서 int 타입의 크기를 뺀 결과를 출력합니다. 따라서, Person 구조체의 멤버 변수 name 변수의 크기는 10-byte로 계산됩니다.
2025-06-14 14:02