본문 바로가기
2학년 2학기/c언어

11-5장 const struct

by kkkkk1023 2024. 11. 11.

const를 구조체에 사용하는 이유

  • 데이터 보호, 가독성, 최적화, 메모리 절약 등 여러 면에서 유용
  • 특히 큰 데이터 구조를 전달할 때는 const 포인터가 복사 비용을 줄여 주므로, 메모리 절약 측면에서 유리할 수 있다.

 

따라서, 값에 의한 호출과 동일한 효과를 내지만 포인터와 const를 사용하는 이유는 값에 의한 호출로 큰 데이터 구조를 전달하면 많은 메모리를 잡아 먹기 때문에 const와 포인터를 사용해서 주소를 전달하지만 원본의 값은 변경하지 못하게 하는 효과를 낼 수 있다. 이렇게 하면 메모리를 절약할 수 있다.

 

 

[const struct 사용 예시]

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

struct student {
    int number;
    char name[10];
    double grade;
};

int equal(const struct student *s1, const struct student *s2) {
    if (strcmp((*s1).name, (*s2).name) == 0)
        return 1;
    else
        return 0;
}

int main() {
    struct student s1 = { 25, "Mun", 3.92 };
    struct student s2 = { 26, "KiM", 3.76 };

    printf("%d", equal(&s1, &s2)); // 0
    return 0;
}

'2학년 2학기 > c언어' 카테고리의 다른 글

11-7장 공용체  (1) 2024.11.12
11-6장 구조체와 포인터  (0) 2024.11.11
11-4장 구조체와 함수  (0) 2024.11.11
11-3장 구조체 배열  (0) 2024.11.11
11-2장 구조체 변수의 대입과 비교  (0) 2024.11.11