2012-04-03 14 views
0

我很困惑,這是什麼做的:結構初始化無與倫比的變量

#define AIR_LP 1 

tw_lptype airport_lps[] = { 
    { 
    AIR_LP, sizeof(Airport_State), 
    (init_f) Airport_StartUp, 
    (event_f) Airport_EventHandler, 
    (revent_f) Airport_RC_EventHandler, 
    (final_f) Airport_Statistics_CollectStats, 
    (statecp_f) NULL 
    }, 
    { 0 }, 
}; 

struct tw_lptype 
{ 
    init_f init; 
    event_f event; 
    revent_f revent; 
    final_f final; 
    map_f map; 
    size_t state_sz; 
}; 

我想我得到通過在結構聲明AIR_LP和sizeof前兩個變量混淆(Airport_state),我知道所有其他人都在做什麼,所以如果有人可以給我一些信息,說明這兩部分將會如何。

+0

結構末尾還有一個未初始化的額外字段,並且最後一個字段的初始化爲錯誤的類型。在結構的定義周圍是否有條件編譯(即'#ifdef'類似)? – 2012-04-04 06:03:23

回答

0

如果不知道涉及的類型,很難回答您的問題。你遇到的問題是,當你的結構有6個時,你的初始化有7個屬性。AIR_LP, sizeof(Airport_State),是不同於初始化的其餘部分,它由一個類型轉換和一個值組成。

+0

是的,但它不是問題,也不是我的代碼,它可以很好地工作,就像這樣,這就是爲什麼它讓我困惑。 – csteifel 2012-04-03 23:49:33

+0

然後,你讓我...... – Lou 2012-04-04 05:13:49