C 언어 구조 체 계산 메모리 점용 문제 분석
#include <stdio.h>
struct person{
char sex;
int age;
char name[8];
};
int main()
{
printf("sizeof(person) = %d
",sizeof(struct person));
return 0;
}
이 예 는 매우 간단 합 니 다.바로 하나의 구조 체 를 정의 하 는 것 입 니 다.세 가지 속성:각각 char 유형의 sex,int 유형의 age,char[]유형의 name 입 니 다.직관 적 으로 볼 때 크기 는 1+4+8=13 이 어야 합 니 다.그러나 우 리 는 컴 파일 하고 실행 합 니 다.결 과 는 다음 과 같 습 니 다.
# clang hello.c -o hello
# ./hello
sizeof(person) = 16
시 작 된 char 는 1byte 가 아 닌 4byte 로 분 배 됩 니 다.비슷 한 int 와 정렬 하기 위해 서 입 니 다.이것 이 바로 c 언어 구조 체 의 메모리 정렬 의 구체 적 인 표현 입 니 다.Liux 에서 증가attribute__((__packed__))구조 체 가 설명 한 곳 에서 상기 코드 를 수정 하면 다음 과 같다.프로그램 이 실 행 됩 니 다.최종 인쇄 결 과 는 13 입 니 다.우리 가 원래 예 상 했 던 것 에 부합 합 니 다.
필드 정렬 크기 를 1 로 지정 하 는 수정 방법 도 있 습 니 다.다음 과 같 습 니 다.
이 두 가지 방법 은 Liux 에서 만 효력 이 발생 하 는 것 같 습 니 다.windows 에서 이런 방법 은 문법 오 류 를 보고 할 수 있 습 니 다.
C 언어 구조 체 컴 퓨 팅 메모리 점용 문제 분석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 구조 체 메모리 점용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.