아하
생활

생활꿀팁

고요한미어캣123
고요한미어캣123

C언어에서 구조체 선언을 꼭 해야하나요?

변수 선언전에 꼭 필요한 절차라는데 왜 굳이 구조체의 형태를 컴파일러에 미리 알려주어야 하나요? 그리고 구조체를 선언하고 멤버를 사용하는 방법도 궁금해요. 이것 관련해서 여러 정보들도 좀 알려주세요.

55글자 더 채워주세요.
2개의 답변이 있어요!
  • 보랏빛수염고래51
    보랏빛수염고래51

    구조체의 필요성부터 설명드리면, 데이터 관리를 편하게 하기 위해서 필요합니다.

    char p1_name[20]; int p1_age; char p1_address[100]; char p2_name[20]; int p2_age; char p2_address[100];

    이런식으로 이름과 나이 주소를 가지는 사람을 정의했다고 하면 구조체가 없으면 하나하나 다 지정해서 변경해주고 해야됩니다. 굉장히 비효율적입니다.

    struct Person { // 구조체 정의 char name[20]; // 구조체 멤버 1 int age; // 구조체 멤버 2 char address[100]; // 구조체 멤버 3 } Struct Person p1;

    이런식으로 멤버를 변경하거나 사용할 수 있습니다.

    struct Person p[3];

    그리고 이런식으로 배열로 관리하기 편해집니다.

    컴파일에 알려주는 이유는 얼만큼 메모리를 사용할 것이니 컴퓨터에게 알려줘야 되기 때문입니다.

    멤버를 사용하는 방법은

    p1.name = "홍길동";

    . 으로 멤버 접근 할 수있고, 변경할 수 있습니다.

  • 기본 타입만을 사용하는 것이 아니라면 구조체를 만들어서 사용해야합니다.

    C언어가 강타입의 언어중 하다나 보니 타입체크에 대해서 엄격한 편입니다.

    그러다보니 변수를 선언할때 어떤 타입의 변수를 선언한다고 알려줘야 합니다.

    언어마다 사용방법이 다르기는 하지만 C언어는 변수 선언전 타입을 명시 해야합니다.

    구조체가 이해가 잘 안된다면 유튜브에 C언어 관련 영상이 많습니다.

    여러사람의 강의를 들어보는 것을 추천합니다.