에서 변환 D에서 구조체를 바이트 배열로 변환하는 빠르고 쉬운 방법이 있습니까? D 문서에서 아무 것도 찾지 못했습니다.구조체를 byte [] 또는 void []로 D
3
A
답변
3
void[] arr;
MyStruct s;
arr = (&s)[0..1];
동적 배열 (const와 여전히 적용) 암시 적으로 void[]
을 변환합니다.
2
이 나를 위해 빌드 : 모든 유형의
struct Foo
{
int x;
}
void main()
{
Foo foo;
auto bytes = *(cast(byte[Foo.sizeof]*)(&foo));
}
0
auto byteArray = (cast(ubyte*) &myStruct)[0 .. myStruct.sizeof];
또는 노동 조합이
union MyUnion {
MyStruct myStruct;
ubyte[MyStruct.sizeof] byteArray;
}
관련 문제
- 1. 구조체를 void 포인터처럼 함수에 전달
- 2. 오브젝트를 byte []로 변환
- 3. floatbuffer에서 byte []로 변환
- 4. uint를 byte []로 변환
- 5. C++에서 C++로 구조체를 이전하는 방법
- 6. 바이트의 ArrayList를 byte []로 변환합니다.
- 7. excel workbook을 byte []로 변환하십시오.
- 8. ImageSource를 byte []로 변환하는 방법?
- 9. Silverlight4에서 BitmapImage를 Byte []로 변환하십시오.
- 10. 다시 base64string을 byte []로 변환합니다.
- 11. JSF의 inputText를 byte []로 변환합니다.
- 12. arraylist 오브젝트를 byte []로 변환합니다.
- 13. C 구조체를 C#로 마샬링
- 14. 문자열에서 void *로 캐스팅 한 후
- 15. 부스트 shared_ptr을 void *로 변환하거나
- 16. ref 바이트를 byte []로 변환하는 방법?
- 17. "D"로 배열을 어떻게 자릅니다?
- 18. 무슨 뜻입니까 : 경고 : 'void (ClassName :: *)()'에서 'void (*)()'로 변환
- 19. int를 void *로 변환하는 것은 무엇을 의미합니까?
- 20. byte 또는 int를 사용해야합니까?
- 21. 오류 : 'void (FlashWork :: *) (int, siginfo_t *, void *)'에서 'void * (*) (int, siginfo_t *, void *)'로 변환 함
- 22. pthread_create 함수에서 '* void (MyClass :: *) (void *)를 void * (*) (void *)로 변환 할 수 없습니다.
- 23. Java - byte []를 double []로 변환하고
- 24. void *로 캐스팅하고 Original_Data_Type으로 돌아 가기 *
- 25. 바이너리 파일을 byte []로 읽은 다음 서블릿에서 char []로 보냄
- 26. 구조체를 문자열로 또는 그 반대로
- 27. 캐싱을 위해 imageUrl을 byte []로 변환합니다.
- 28. 가공에서 PImage를 Byte []로 변환하는 방법
- 29. 이미지를 byte []로 HTML을 저장하는 방법 ??? C#
- 30. 클라이언트의 배열을 서버의 byte []로 변환하려면 어떻게해야합니까?
내가 D를 모르는 사용하는,하지만 난 궁금 하군요,'무효 []'무슨 일이야? –
@ R.MartinhoFernandes : D에서'T []'는 슬라이스이며'struct {T * ptr; size_t 길이; }'. 그래서 void []는 C에서'void *'와 같은 임의의 데이터 조각입니다. – kennytm
@KennyTM cool, thanks :) –