반응형
c2hs를 사용하여 구조체 및 익명 공용체와 인터페이스
이 C 코드 덩어리를 .chs 파일로 인코딩하여 c2hs가 비교적 좋은 것으로 변환 할 수 있도록하려면 어떻게해야할까요?
typedef enum {
MONOME_BUTTON_UP = 0x00,
MONOME_BUTTON_DOWN = 0x01,
MONOME_ENCODER_DELTA = 0x02,
MONOME_ENCODER_KEY_UP = 0x03,
MONOME_ENCODER_KEY_DOWN = 0x04,
MONOME_TILT = 0x05,
/* update this if you add event types */
MONOME_EVENT_MAX = 0x06
} monome_event_type_t;
typedef struct monome monome_t; /* opaque data type */
typedef struct monome_event monome_event_t;
typedef void (*monome_event_callback_t)
(const monome_event_t *event, void *data);
struct monome_event {
monome_t *monome;
monome_event_type_t event_type;
/* __extension__ for anonymous unions in gcc */
__extension__ union {
struct {
unsigned int x;
unsigned int y;
} grid;
struct {
unsigned int number;
int delta;
} encoder;
struct {
unsigned int sensor;
int x;
int y;
int z;
} tilt;
};
};
방법 : 구성원의 이름을 지정하도록 코드를 변경하십시오. 메모리의 레이아웃은 동일하므로 바이너리와 호환됩니다. lib의 각 버전에 대해이 패치를 수행해야합니다.
struct monome_event {
monome_t *monome;
monome_event_type_t event_type;
/* __extension__ for anonymous unions in gcc */
__extension__ union {
struct me_grid {
unsigned int x;
unsigned int y;
} grid;
struct me_encoder {
unsigned int number;
int delta;
} encoder;
struct me_tilt {
unsigned int sensor;
int x;
int y;
int z;
} tilt;
};
};
참고 URL : https://stackoverflow.com/questions/23716996/interfacing-with-structs-and-anonymous-unions-with-c2hs
반응형
'Programming' 카테고리의 다른 글
Linux에서 MbUnit, F # 프로젝트 내에서 사용됩니까? (0) | 2020.08.19 |
---|---|
GMSGroundOverlay 애니메이션-CATiledLayer를 사용해야합니까? (0) | 2020.08.19 |
MPI 타입 맵 표시 (0) | 2020.08.19 |
VC ++ 코드 DOM은 VS 애드온에서 액세스 할 수 있습니까? (0) | 2020.08.19 |
iOS 7.0.3에서“HelveticaNeue-Italic”에 발생한 일 (0) | 2020.08.19 |