從外面工作的你知道你有5件事情的數組初始化:
mystruct foo[5] = {
X,
X,
X,
X,
X
};
其中X
是一臺爲mystruct
類型的初始化。所以現在我們需要弄清楚每個X
的樣子。的mystruct
每個實例有兩個元素,somearray
和somevar
,所以你知道你的X
初始化會像
X = { Y, Z }
代回原來的聲明中被結構化的,我們現在得到
mystruct foo[5] = {
{ Y, Z },
{ Y, Z },
{ Y, Z },
{ Y, Z },
{ Y, Z }
};
現在,我們需要弄清楚每個Y的樣子。 Y對應於int
的3x2陣列的初始化器。再次,我們可以在從外部的工作,你有一個3元素數組的初始化:
Y = { A, A, A }
,其中每個陣列元素是int
一個2元素的數組:
A = { I, I }
Subsituting回爲Y,我們得到
Y = { { I, I }, { I, I }, { I, I } }
代,早成X,我們得到
X = { { { I, I }, { I, I }, { I, I } }, Z }
現在讓我們
mystruct foo[5] = {
{ { { I, I }, { I, I }, { I, I } }, Z },
{ { { I, I }, { I, I }, { I, I } }, Z },
{ { { I, I }, { I, I }, { I, I } }, Z },
{ { { I, I }, { I, I }, { I, I } }, Z },
{ { { I, I }, { I, I }, { I, I } }, Z }
};
由於Z
是一臺爲一個整數,我們並不需要打破它的任何進一步。只是實際的整數值取代I
S和Z
秒,你就大功告成了:
mystruct foo[5] = {
{{{101, 102}, {201, 202}, {301, 302}}, 41},
{{{111, 112}, {211, 212}, {311, 312}}, 42},
{{{121, 122}, {221, 222}, {321, 322}}, 43},
{{{131, 132}, {231, 232}, {331, 332}}, 44},
{{{141, 142}, {241, 242}, {341, 342}}, 45}
};
只是因爲一些事情可以做,並不一定意味着你應該做他們。考慮一下從未看過你的代碼的人會如何看待這樣的初始化。 – 2012-03-12 14:47:57
@HunterMcMillen - 在許多情況下,這是比別人更好的選擇。 – MByD 2012-03-12 14:57:21
@BinyaminSharet我只是相信在維護方面,初始化每一部分清楚地評論每一步會更加清楚。你可以舉一個例子,這是首選嗎?沒有人想到我。 – 2012-03-12 15:03:56