구조체 초기화 예제. initialize struct
안쓰면 자꾸 잊어 버려서.. 기록...
// 예제 구조체
struct TEST_HEADER
{
unsigned short packet_type;
unsigned short header_size;
int acode;
int detail_type;
};
struct DD_BODY
{
char id[4];
unsigned char test1;
unsigned char ff;
unsigned char cr;
unsigned char lf;
};
struct DD_PACKET
{
TEST_HEADER hdr;
DD_BODY body;
};
//---------------------------------------------------------------------------
// 단순 구조체 초기화 예제 1
TEST_HEADER MyHeader = {1010, // packet_type
1020, // header_size
1000030, // acode
1000040 // detail_type
};
// 단순 구조체 초기화 예제 2
DD_BODY MyBody = {'test', // test1
10, // ff
20, // cf
30, // cr
40 // lf
};
// 복합 구조체 초기화 예제
DD_PACKET MyPacket = { // TEST_HEADER hdr
{1010, // packet_type
1020, // header_size
1000030, // acode
1000040 // detail_type
},
// DD_BODY
{'test', // test1
10, // ff
20, // cf
30, // cr
40 // lf
}
};
PS1: Delphi 에서는 MyHeader = (packet_type=1010, ... 와 같이 값에 변수명을 대입 할 수 있으나
C/C++ 에선 값 입력 순서에 따라 변수에 대입됩니다..
순서에 따라 {} 를 배치하면 구조체가 몇겹이 되었든 초기화 할 수 있습니다.
PS2: 정확한 표현은, "구조체 초기값 설정" 입니다..
|
구조체는 다음과 같이 초기화 할 수 있습니다.
TEST_HEADER MyHeader = {0,};
DD_BODY MyBody = {0,};
DD_PACKET MyPacket = {0,};