#include#include #include #pragma pack(push) #pragma pack(1) struct A{ int Size; short Cmd; int Count; };//크기 10Byte 맞춰주기위해 pragma pack()사용 #pragma pack(pop) void RecvStruct(char* StructToChar){ int Size = ((A*)StructToChar)->Size; short Cmd = ((A*)StructToChar)->Cmd; int Count = ((A*)StructToChar)->Count; // memcpy((void*)Size, StructToChar, sizeof(Size)); // memcpy((void*)Cmd, StructToChar + 4, sizeof(Cmd)); // memcpy((void*)Count, StructToChar + 6, sizeof(Count)); printf("%d\n", Size); printf("%d\n", Cmd); printf("%d\n", Count); } int main(void){ A StructA; StructA.Size = 1; StructA.Cmd = 2; StructA.Count = 3; RecvStruct((char*)&StructA); system("pause"); }
char*형으로 구조체를 넘겨주고 다시 구조체로 형변환 하여 데이터를 받아본 모습이다.
구조체를 이용하여 데이터들을 BYTE단위로 넘겨주었다.
BYTE단위로 값들을 연결하기 귀찮거나 힘들때 구조체를 이용하여 넘겨주면 편한것 같다.
memcpy로는 다시 받을수 없는것같은데 추후 더 공부할계획
'C,C++' 카테고리의 다른 글
SW개발 프로세스 : V모델 (0) | 2018.09.19 |
---|---|
sprintf 사용법 시간 자리수 맞춰서 string으로 표기해주기 (0) | 2018.08.16 |
HEX값에서 flloat 값으로 변환 (BigEndian HEX to float Convert) (0) | 2018.07.31 |
구조체 바이트 패킹 하기 (6) | 2018.07.26 |