在Xt中定義回調函數時(例如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
2009-12-11 18:28:10
從我讀過的,uintptr_t保證爲ptr-> int-> ptr工作,但不一定int-> ptr-> int。所以簡短的答案似乎是沒有,沒有便攜的方式。那是對的嗎? – ToddR 2009-12-12 16:15:51