Xt에서 콜백 proc (예 : XtTimerCallbackProc)을 정의 할 때 client_data는 XtPointer로 지정됩니다. 실제 포인터가 아닌 client_data를 통해 int를 전달하고 프로 시저 내부로 다시 캐스팅하는 것이 안전합니까? 예를 들어XtPointer를 사용하여 int를 전달하는 것이 안전합니까?
:
void foo(void) {
...
int data = 1;
XtAppAddTimeout(app_context, 1000, timer_cb, data);
...
}
void timer_cb(XtPointer client_data, XtIntervalId *timer)
{
int my_data = (int) client_data;
...
}
'#include'에 있습니다. OP가 그것에 대해 알지 못하는 경우를 대비하여. –
ephemient
내가 읽은 것부터 uintptr_t는 ptr-> int-> ptr에서 작동 할 것이지만, 반드시 int-> ptr-> int가 될 필요는 없습니다. 따라서 짧은 대답은 아니오, 휴대용 방법은 없습니다. 그 맞습니까? – ToddR