更基本的方法:靜態初始化結構以零
struct TEST
{
float c;
unsigned int c1;
double c2[5];
} t = {0};
給出了警告:
警告:缺少初始化爲 '結構TEST'[-Wmissing場,初始化的領域 'C1' ]
同時設定C至INT,長,焦炭(但不是陣列)等...
與陣列它給出警告:
警告:錯過周圍初始化括號[-Wmissing-括號]
是: 我有以下行是這樣的:
#define ADD_STRUCT_TO_ARRAY(xu) X(xu, &(struct xu){})SEP
這是因爲這些結構必須在許多地方初始化。但它給我的警告:
警告:缺少初始現場「結構A」的「A1」 [-Wmissing場-初始化]
C99標準中應該初始化爲零,擺脫警告?
更改爲
#define ADD_STRUCT_TO_ARRAY(xu) X(xu, &(struct xu){0})SEP
得到幾乎擺脫了警告但如果該結構的第一個元素是float或double。
任何想法是怎麼回事?還設置0.0似乎沒有幫助
那麼什麼是X和SEP,以及幾乎沒有得到什麼警告?用更清晰的example.X和SEP編輯的 – BonzaiThePenguin 2014-09-28 19:29:17
是宏,您可以輕鬆忽略。 – Lesto 2014-09-28 19:35:49
謝謝,你編輯的例子確實更清晰。 – BonzaiThePenguin 2014-09-29 11:08:34