프로그래밍/C, C++

C, C++ - 구조체 생성자를 사용하여 초기화

꾸션 2019. 2. 19. 16:55

일반적인 구조체 선언 후 초기화

구조체 정의

typedef struct _MY_STRUCT
{
  char c;
  int i;
  char sz[100];
} MY_STRUCT;

구조체 정의 및 초기화

MY_STRUCT st; // 구조체 변수 정의
memset(&st, 0x0, sizeof(st)); // 구조체 초기화

 

생성자에서 초기화

구조체 정의

typedef struct _MY_STRUCT
{
  char c;
  int i;
  char sz[100];

  _MY_STRUCT()
  {
    memset(this, 0x0, sizeof(struct _MY_STRUCT));
  }
} MY_STRUCT;

구조체 정의

MY_STRUCT st; // 구조체 변수 정의함과 동시에 생성자에 의해서 초기화됨.

 

생성자에서 특정 값으로 초기화

구조체 선언

typedef struct _MY_STRUCT
{
  char c;
  int i;
  char sz[100];
  
  _MY_STRUCT()
  {
    c = 'a';
    i = 32;
    memset(sz, 0x0, sizeof(sz));
    // strncpy(sz, "abcd", 4);
  }
} MY_STRUCT;

구조체 정의

MY_STRUCT st; // 구조체 변수 정의함과 동시에 생성자에 의해서 특정값으로 초기화됨.