-Layer7 구조체

2023. 4. 9. 14:55Code

C언어에서 구조체는 여러 개의 변수를 묶어 하나의 데이터 타입으로 정의할 수 있는 유용한 기능이다.

구조체를 사용하면 서로 관련된 데이터를 함께 묶어, 더 직관적이고 관리하기 쉬운 코드를 작성할 수 있어 흔히 쓰인다.

 

C언어에서 구조체는 여러개의 변수를 묶어 하나의 데이터 타입으로 정의할 수 있는 유용한 기능을 담당하고,

 구조체를 사용하면 서로 관련된 데이터를 함께 묶어내어, 관리하기 쉬운 코드로 보이게 작성해 나갈 수 있다.

 

구조체를 정의하기 위해서는 Struct 키워드를 사용하며, 구조체 안에는 여러 변수를 넣을 수 있다. 이렇게 선언된 변수들을 구조체 멤버라고 칭하며 구조체 멤버는 다양한 데이터 타입들을 가질 수 있음과 동시에 다른 구조체를 포함시킬 수도 있다. 구조체 선언은 다음과 같은 형태를 주로 가진다.

 

struct 구조체명 {
    데이터타입 변수명1;
    데이터타입 변수명2;
    // ...
};

예를 들어, 학생 정보를 저장하는 구조체를 작성해 나가고 싶다면 아래와 같이 작성할 수 있다.

 

struct Student {
    char name[50];
    int age;
    float grade;
};

 

위와 같이 선언하고 관련 코드를 아래와 같이 작성해 내어 활용할 수 있다.

 

#include <stdio.h>
#include <string.h>

// 학생 구조체 정의
struct Student {
    char name[50];
    int age;
    float grade;
};

int main() {
    // 구조체 변수 선언
    struct Student student1;

    // 구조체 멤버에 값을 할당
    strcpy(student1.name, "홍길동");
    student1.age = 20;
    student1.grade = 4.3;

    // 구조체 멤버 값 출력
    printf("학생 정보:\n");
    printf("이름: %s\n", student1.name);
    printf("나이: %d\n", student1.age);
    printf("성적: %.2f\n", student1.grade);

    return 0;
}

 

구조체를 활용하면 얻을 수 있는 정말 많다.

 

1. 코드가 간결해지고 보기 이뻐진다. ** 솔직히 이거 하나 때문에 쓰는 거 같다.

2. for문이나 while 문을 활용 즉 반복문을 활용하면 변수 값을 쉽게 저장해 나갈 수 있 을 것이다.

 

그렇다고 장점만 있는 것은 아니다.

 

대표작인 단점은 조사결과 아래와 같다.

 

* 구조체를 사용하면 변수를 선언할때 많은 코드를 작성해야 하므로 오히려 코드가 길어질 수 있다.

 

* 구조체는 포인터와 함께 사용을 할때 메모리 누수와 같은 문제가 발생할 수 있다.

 

* 구조체를 사용하면 코드의 복잡도가 증가해 나갈 수 있다.

 

'Code' 카테고리의 다른 글

-Layer7 C언어 포인터  (0) 2023.04.09
나만의 Web-hacking 도우미 만들기 (1)  (0) 2022.12.31