Xtでコールバックプロシージャ(たとえば、XtTimerCallbackProc)を定義する場合、client_dataはXtPointerとして指定されます。実際のポインタではなくclient_dataを介して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;
...
}