我對C非常新穎,如果有人能幫助理解爲什麼第13,14和16行中的代碼不起作用,而第17-20行起作用,請多加諒解。初始化結構數組,爲什麼使用結構變量不起作用
隨着第一個選項(第13行,14和16),我得到的錯誤
error: initializer element is not constant
這是什麼意思?此外,這是否意味着不能使用某些類型的變量來生成新變量?
謝謝。
// Define structure for a good
5 struct good {
6 char goodname;
7 double p; //starting proportion
8 int theta; //average utility
9 int sigma; //variance of error
10 };
11
12 // The goods H and L
13 struct good H = {.goodname = 'H', .p = 0.5, .theta = 100, .sigma = 20};
14 struct good L = {.goodname = 'L', .p = 0.5, .theta = 75, .sigma = 20};
15
16 struct good goods[2] = {H, L}; // **Does not work**
// ** Works**
17 struct good goods[2] = {
18 {.goodname = 'H', .p = 0.5, .theta = 100, .sigma = 20},
19 {.goodname = 'L', .p = 0.5, .theta = 75, .sigma = 20}
20 };