변수를 사용하여 C 구조체 캐스팅

사용자 3826668

요청 및 응답을위한 두 개의 c 구조체를 포함하는 프로젝트에 대한 통신 프로토콜을 작성 중입니다. 장치 설정 방법에 따라 데이터 전송은 요청 (마스터 모듈) 또는 응답 (슬레이브 모듈)이 될 수 있습니다.

구조는 서로 매우 가깝습니다. 가장 큰 차이점은 요청이 응답과 구조화되는 방식입니다.

다음과 같이 정의 된 전역 변수에 대한 포인터를 보유하는 변수가 있습니다.

unsigned int MBData;

MBData = gCommResponse;

코드를 참조 할 때

((MBResponse*)MBData)->Address = someData;

또는

((MBResponse*))MBData)->Address = someData;

이 코드는 성공적이지만 통신 기능에 대해 더 모호성을 원합니다.

내가하고 싶은 것은 MBRequest 또는 MBResponse에 대한 포인터를 사용하여 MBData를 캐스팅하는 것입니다.

unsigned int MBStruct;

MBStruct = &MBResponse;

((MBStruct*)MBData)->Address = someData; // Something like this

C 프로그래밍에서 이것이 가능합니까?

감사.

dbush

이것은 불가능합니다. 구조체 멤버에 액세스 할 때 컴파일러는 컴파일 타임에 구조체 유형을 알아야합니다.

두 구조체에 공통 이름을 가진 필드가있을 수 있지만 동일한 (또는 호환 가능한) 유형이거나 각 구조체에서 동일한 오프셋에 있다는 보장은 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수를 사용하여 C 구조체 캐스팅

분류에서Dev

형식 인수를 사용하여 개체를 클래스로 C # 캐스팅

분류에서Dev

지역 변수를 사용하거나 구조체 값에 여러 번 액세스 (C ++)

분류에서Dev

C ++ 왜 내가 구조체에서 변수를 캐스트하거나 산술을 할 수 없습니까?

분류에서Dev

구조체를 사용하여 C의 변수에서 잘못된 값 얻기

분류에서Dev

구조체를 사용하여 C 유형의 파스칼 스타일 문자열을 변환하는 방법

분류에서Dev

구조체를 논리로 캐스팅

분류에서Dev

C ++ 함수를 사용하여 배열 구조체에 액세스하는 방법은 무엇입니까?

분류에서Dev

c 구조체를 사용하여 연결 목록 구현

분류에서Dev

CFFI를 사용하여 Common Lisp에서 스택의 C 함수에 구조체 전달 및 반환

분류에서Dev

구조체를 배열로 캐스팅하는 것이 합법적입니까?

분류에서Dev

void 포인터를 구조체로 캐스팅하고 초기화

분류에서Dev

일반 개체를 캐스팅하는 방법 C #

분류에서Dev

개체를 C # 형식으로 캐스팅하는 방법

분류에서Dev

구조체를 다른 구조체로 캐스팅

분류에서Dev

LRESULT를 사용자 지정 구조체 형식으로 캐스팅하는 방법은 무엇입니까?

분류에서Dev

구조체를 사용하여 C ++ 문자열을 C #으로

분류에서Dev

C #을 사용한 F # 구조체 판별 통합 상호 운용성 : 특정 사례로 캐스팅

분류에서Dev

동일한 멤버를 사용하여 하나의 구조체를 다른 형식으로 캐스팅하는 방법은 무엇입니까?

분류에서Dev

유형 매개 변수를 사용하여 유형 캐스팅

분류에서Dev

유형 캐스팅을 사용하여 구조체에 char 배열 할당

분류에서Dev

qsort를 사용하여 C에서 구조체 배열 정렬

분류에서Dev

C ++ delete []를 사용하여 구조체 배열 삭제

분류에서Dev

Array.from을 사용하여 객체를 배열로 캐스팅

분류에서Dev

구조체의 int 멤버를 char *로 캐스팅하여 직렬화하면 역 직렬화 할 때 int * 형식으로 캐스팅해야합니까?

분류에서Dev

C ++ 템플릿 및 기본 및 하위 클래스를 템플릿 매개 변수로 사용한 캐스팅

분류에서Dev

포인터를 사용하여 구조체 C ++ 벡터의 요소에 액세스

분류에서Dev

C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

분류에서Dev

C 구조체 객체를 전역 변수로 인스턴스화하는 것이 나쁜 습관입니까?

Related 관련 기사

  1. 1

    변수를 사용하여 C 구조체 캐스팅

  2. 2

    형식 인수를 사용하여 개체를 클래스로 C # 캐스팅

  3. 3

    지역 변수를 사용하거나 구조체 값에 여러 번 액세스 (C ++)

  4. 4

    C ++ 왜 내가 구조체에서 변수를 캐스트하거나 산술을 할 수 없습니까?

  5. 5

    구조체를 사용하여 C의 변수에서 잘못된 값 얻기

  6. 6

    구조체를 사용하여 C 유형의 파스칼 스타일 문자열을 변환하는 방법

  7. 7

    구조체를 논리로 캐스팅

  8. 8

    C ++ 함수를 사용하여 배열 구조체에 액세스하는 방법은 무엇입니까?

  9. 9

    c 구조체를 사용하여 연결 목록 구현

  10. 10

    CFFI를 사용하여 Common Lisp에서 스택의 C 함수에 구조체 전달 및 반환

  11. 11

    구조체를 배열로 캐스팅하는 것이 합법적입니까?

  12. 12

    void 포인터를 구조체로 캐스팅하고 초기화

  13. 13

    일반 개체를 캐스팅하는 방법 C #

  14. 14

    개체를 C # 형식으로 캐스팅하는 방법

  15. 15

    구조체를 다른 구조체로 캐스팅

  16. 16

    LRESULT를 사용자 지정 구조체 형식으로 캐스팅하는 방법은 무엇입니까?

  17. 17

    구조체를 사용하여 C ++ 문자열을 C #으로

  18. 18

    C #을 사용한 F # 구조체 판별 통합 상호 운용성 : 특정 사례로 캐스팅

  19. 19

    동일한 멤버를 사용하여 하나의 구조체를 다른 형식으로 캐스팅하는 방법은 무엇입니까?

  20. 20

    유형 매개 변수를 사용하여 유형 캐스팅

  21. 21

    유형 캐스팅을 사용하여 구조체에 char 배열 할당

  22. 22

    qsort를 사용하여 C에서 구조체 배열 정렬

  23. 23

    C ++ delete []를 사용하여 구조체 배열 삭제

  24. 24

    Array.from을 사용하여 객체를 배열로 캐스팅

  25. 25

    구조체의 int 멤버를 char *로 캐스팅하여 직렬화하면 역 직렬화 할 때 int * 형식으로 캐스팅해야합니까?

  26. 26

    C ++ 템플릿 및 기본 및 하위 클래스를 템플릿 매개 변수로 사용한 캐스팅

  27. 27

    포인터를 사용하여 구조체 C ++ 벡터의 요소에 액세스

  28. 28

    C # 캐스팅 된 속성을 매개 변수로 사용하여 제네릭 메서드 호출

  29. 29

    C 구조체 객체를 전역 변수로 인스턴스화하는 것이 나쁜 습관입니까?

뜨겁다태그

보관