0
哪種方式最好將S傳遞給GSourceFunc?或者既不?將結構內的結構傳遞給GSourceFunc的最佳方法
typedef struct{
//...
}S;
struct MS{
//..
S *St;
};
static gboolean AL_Calback(gpointer data){
S *St = (S*)user_data;
St->Something = SomethingElse;
return TRUE;
}
int main (int argc, char *argv[]){
//...
MS *MainStruct = gnew0(MS, 1);
Mainstruct->St = gnew0(S, 1);
clutter_threads_add_timeout_full(G_PRIORITY_HIGH, 100, AL_Callback, MainStruct->St, NULL);
//...
}
或類似這樣的,
typedef struct{
//...
}S;
struct MS{
//..
S St;
};
static gboolean AL_Calback(gpointer data){
MS *MV = (MS*)user_data;
MV->S.something = SomethingElse;
return TRUE;
}
int main (int argc, char *argv[]){
//...
MS *MainStruct = gnew0(MS, 1);
clutter_threads_add_timeout_full(G_PRIORITY_HIGH, 100, AL_Callback, MainStruct, NULL);
//...
}
我試過其他的方法,但一直沒能使其發揮作用。 clutter_add_timeout需要將指針作爲參數。
'clutter_threads_add_timeout'不會縫讓我過去什麼,但一個gpointer,這其實只是'(無效*)'。 – MVTC
@MVTCplusplus - 然後只需在代碼後忽略該句子。 a)有一個指針成員並傳遞該成員之間沒有區別。和b)有一個struct成員並傳遞它的地址(內存分配除外) – Attila
謝謝。我還沒有做任何測試,但我想你幾乎回答了我的問題。 – MVTC