산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C 구조체 vs 공용체: 실전 가이드

구조체(Structure)란?

구조체는 논리적으로 관련된 서로 다른 타입의 데이터 항목들을 단일 단위로 그룹화하는 C의 사용자 정의 데이터 타입입니다. 각 멤버는 고유한 연속 메모리 위치를 차지하므로 구조체는 여러 값을 동시에 보유할 수 있습니다.

예: 이름, 학번, 성적을 한 변수 이름으로 저장하는 학생 레코드.

공용체(Union)란?

공용체도 사용자 정의 타입이지만 모든 멤버가 같은 메모리 공간을 공유합니다. 공용체 크기는 가장 큰 멤버 크기와 같습니다. 이 특징은 한 번에 한 멤버만 필요할 때 메모리 제약 상황에서 이상적입니다.

구조체 선언

struct Student {
    char name[60];
    int roll_no;
    float marks;
};

struct 키워드와 닫는 중괄호 뒤 세미콜론에 주의.

예제: 구조체 사용

#include <stdio.h>
struct Student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main(void) {
    printf("Enter the following information:\n");
    printf("Student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Roll number: ");
    scanf("%d", &sdt.roll_no);
    printf("Marks: ");
    scanf("%f", &sdt.marks);
    printf("\nEntered data:\n");
    printf("Name: %s", sdt.name);
    printf("Roll number: %d\n", sdt.roll_no);
    printf("Marks: %.1f\n", sdt.marks);
    return 0;
}

출력 (예시):

Enter the following information:
Student name: James
Roll number: 21
Marks: 67
Entered data:
Name: James
Roll number: 21
Marks: 67.0

공용체 선언

union Item {
    int x;
    float y;
    char ch;
};

예제: 공용체 사용

#include <stdio.h>
union Item {
    int x;
    float y;
    char ch;
};
int main(void) {
    union Item it;
    it.x = 12;
    it.y = 20.2f;
    it.ch = 'a';
    printf("x = %d\n", it.x);
    printf("y = %f\n", it.y);
    printf("ch = %c\n", it.ch);
    return 0;
}

모든 멤버가 메모리 공유하므로 ch 설정 시 이전 x, y 값 덮어씀. 마지막으로 저장된 값만 유효.

구조체 vs 공용체

C 구조체 vs 공용체: 실전 가이드

특징구조체공용체
선언 키워드structunion
메모리 레이아웃각 멤버 별도 공간모든 멤버 한 공간 공유
한 멤버 변경 시다른 멤버 영향 없음다른 멤버 덮어씀
초기화모든 멤버 동시 초기화 가능첫 번째 멤버만 한 번에 초기화 가능
전체 크기모든 멤버 크기 합가장 큰 멤버 크기
일반적 용도다양한 타입 관련 데이터 저장여러 가능 타입 중 하나 저장
접근 패턴언제든 모든 멤버 접근한 번에 한 멤버만 유효
가변 배열 지원지원미지원

각각 언제 사용하는가

장단점

구조체 장점

구조체 단점

공용체 장점

공용체 단점

C 언어

  1. 석면 vs 유리 섬유: 주요 차이점, 용도 및 안전성 고려사항
  2. C++ 구조체 vs 클래스: 핵심 차이, 문법, 최적 사용 사례
  3. C# vs C++: 기능, 성능, 용도 비교 분석
  4. C vs C++: 핵심 차이점 & 선택 가이드
  5. C vs Java: 기능, 역사, 용도의 종합 비교
  6. C언어 strlen() vs sizeof(): 차이점 이해와 올바른 사용법
  7. 파이썬 vs 자바스크립트: 주요 차이점, 특징 및 선택 가이드
  8. DC 모터 vs AC 모터: 핵심 차이점과 구매 가이드
  9. 브레이징 vs 납땜: 핵심 차이점 완벽 설명
  10. 2행정 vs 4행정 엔진: 핵심 차이점과 장단점 완벽 비교