[C++] offsetof 매크로

Date:     Updated:

카테고리:

태그:

이 글은 C++ offsetof 매크로를 공부하고 정리한 글입니다.
offsetof 매크로는 특정 멤버가 본인을 포함한 자료 구조의 시작점에서부터 몇 바이트만큼 떨어져 있는지 알려줍니다.

offsetof 매크로

  • 매크로의 일종
  • 특정 멤버가 본인을 포함한 자료 구조의 시작점에서부터 몇 바이트만큼 떨어져 있는지 알려줌
  • 직렬화(serialize)나 역직렬화(deserialize)를 할 때 꽤나 유용

    코드 예제

    // Main.cpp
    struct Student
    {
        const char* ID;
        const char* Name;
        int CurrentSemester;
    };
    
    int main()
    {
        std::cout << "ID offset: " << offset(Student, ID) << std::endl;                               // ID offset: 0
        std::cout << "Name offset: " << offset(Student, Name) << std::endl;                           // Name offset: 4
        std::cout << "CurrentSemester offset: " << offset(Student, CurrentSemester) << std::endl;     // CurrentSemester offset: 8
    
        return 0;
    }
    


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기