C언어. #pragma 알아보기
🌟 #pragma
#pragma도 마찬가지로 전처리기 명령이며, 컴파일 이전에 실행된다.
위 사이트에 다양한 #pragma 사용법이 있지만 나는 두 개만 알아볼 예정!
🌟 #pragma once
#pragma once
int void Sum(a, b);
int void Sub(a, b);
...
따로 헤더 파일을 만들 때, 헤더 파일을 생성하고 나면 #pragma once
가 이미 쓰여 있는 것을 알 수 있다. #pragma once
는 **해당 헤더를 한 번만 ** 적용한다는 뜻이다. 메인 코드에 프로그래머가 제작한 헤더를 두 번 이상 씌우는 실수를 해도, #pragma once
덕분에 오류가 나지 않을 것이다!
🌟 #pragme pack()
#include <stdio.h>
#pragma pack(1)
struct Student
{
char name[32];
int number;
int age;
};
#pragma pack(pop)
#pragma pack(1)
은 구조체의 정렬을 명령하며, 1 바이트 단위로 정렬하라고 지시하고 있다. 2를 넣으면 2 바이트, 4를 넣으면 4 바이트로 정렬할 수 있다.
그리고 밑의 #pragma pack(pop)
는 정렬 설정을 초기화, 기본 값으로 돌리는 명령어다.
☝ 잠깐! 왜 1 바이트로 정렬하지?
C언어에서 바이트는 가장 작은 단위고, 구조체를 1 바이트 단위로 정렬하면 남은 공간 없이 메모리에 올라갈 수 있다! 공간 효율!
댓글남기기