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

구조와 연합의 차이점

구조란 무엇입니까?

구조는 서로 다른 데이터 유형의 논리적으로 관련된 데이터 항목을 함께 결합하는 C 프로그래밍 언어의 사용자 정의 데이터 유형입니다.

모든 구조 요소는 인접한 메모리 위치에 저장됩니다. 구조 유형 변수는 하나의 이름으로 다양한 데이터 유형의 데이터 항목을 둘 이상 저장할 수 있습니다.

이 자습서에서는 다음을 배우게 됩니다.

유니온이란 무엇입니까

Union은 구조와 마찬가지로 사용자 정의 데이터 유형입니다. Union은 유형과 크기가 다른 개체를 결합합니다. Union 변수는 가장 큰 Union 변수를 저장할 공간과 동일한 메모리 공간을 할당합니다. 다양한 유형의 개체가 동일한 위치를 공유할 수 있습니다.

구조 선언 구문

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

구조체는 "struct" 키워드와 구조체 이름을 사용하여 선언합니다. 숫자 1, 숫자 2, 숫자 3은 구조의 개별 구성원입니다. 본문 부분은 세미콜론(;)으로 끝납니다.

C 프로그래밍의 구조 예

#include <stdio.h>
struct student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main() {
    printf("Enter the following information:\n");
    printf("Enter student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Enter student roll number: ");
    scanf("%d", & sdt. roll_no);
    printf("Enter students marks: ");
    scanf("%f", & sdt.marks);
    printf("The information you have entered is: \n");
    printf("Student name: ");
    printf("%s", sdt.name);
    printf("Student roll number: %d\n", sdt. roll_no);
    printf("Student marks: %.1f\n", sdt.marks);
    return 0;
}

위의 프로그램에서 학생이라는 구조가 생성됩니다. 이 구조에는 1) 이름(문자열), 2) roll_no(정수), 3) 표시(float)의 세 가지 데이터 멤버가 있습니다.

그런 다음 학생 정보를 저장하고 컴퓨터 화면에 표시하기 위해 구조 변수 sdt가 생성됩니다.

출력:

다음 정보를 입력하십시오:

학생 이름 입력:James

학생 명부 번호 입력:21

학생 점수 입력:67

입력하신 정보는 다음과 같습니다.

학생 이름:John

학생 명부 번호:21

학생 점수:67.0

통합 선언의 구문

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

Union은 "union" 키워드와 Union 이름을 사용하여 선언합니다. 1번, 2번, 3번은 개별 조합원입니다. 본문 부분은 세미콜론(;)으로 끝납니다.

C 프로그래밍의 Union 예제

#include <stdio.h>

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

int main( )
{
    union item it;
    it.x = 12;
    it.y = 20.2;
    it.ch = 'a';
    
    printf("%d\n", it.x);
    printf("%f\n", it.y);
    printf("%c\n", it.ch);
    
    return 0;
}

출력:

1101109601

20.199892

위의 프로그램에서 x와 y의 값이 손상되는 것을 볼 수 있습니다. 변수 ch만 예상 결과를 인쇄합니다. 유니온에서는 모든 멤버 데이터 유형이 메모리 위치를 공유하기 때문입니다.

따라서 현재 값이 저장된 유일한 데이터 멤버는 메모리 공간을 차지합니다. 변수 ch의 값이 마지막에 저장되었으므로 나머지 변수의 값은 손실됩니다.

구조 대 연합

다음은 구조와 공용체의 중요한 차이점입니다.

구조 연합 struct 키워드를 사용하여 구조를 정의할 수 있습니다. union 키워드를 사용하여 union을 정의할 수 있습니다. 구조 내의 모든 멤버에는 고유한 메모리 위치가 할당됩니다. union에서 메모리 위치는 모든 데이터 멤버가 공유합니다. 값 변경 한 데이터 멤버의 값은 구조의 다른 데이터 멤버에 영향을 미치지 않습니다. 한 데이터 멤버의 값을 변경하면 공용체에 있는 다른 데이터 멤버의 값이 변경됩니다. 이를 통해 한 번에 여러 멤버를 초기화할 수 있습니다. 첫 번째 멤버만 초기화할 수 있습니다. of union. 구조의 전체 크기는 모든 데이터 멤버의 크기의 합입니다. union의 전체 크기는 가장 큰 데이터 멤버의 크기입니다. 주로 다양한 데이터 유형을 저장하는 데 사용됩니다. 주로 다음 용도로 사용됩니다. 사용 가능한 많은 데이터 유형 중 하나 저장 하나의 멤버에 액세스 유니온에서 한 번에 er. 유연한 배열을 지원합니다. 유연한 배열을 지원하지 않습니다.

구조의 장점

다음은 구조 사용의 장단점입니다.

연합의 장점

다음은 Union 사용의 장단점입니다.

구조의 단점

다음은 구조 사용의 단점/단점입니다.

연합의 단점

다음은 Union 사용의 단점/단점입니다.

주요 차이점:


C 언어

  1. 석면과 유리 섬유의 차이점
  2. 구조체와 클래스의 차이점:C++ 예제로 설명
  3. C# 대 C++:C#과 C++의 차이점은 무엇입니까?
  4. C와 C++의 차이점
  5. C와 자바의 차이점
  6. C의 문자열에 대한 strlen()과 sizeof()의 차이점
  7. Python 대 JavaScript:JavaScript와 Python의 차이점
  8. DC 모터와 AC 모터의 차이점
  9. 브레이징과 납땜의 차이점
  10. 2행정 엔진과 4행정 엔진의 차이점