[語法] 在struct裡宣告資料陣列

看板C_and_CPP (C/C++)作者 (somo)時間16年前 (2009/05/08 01:47), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
我現在有一個struct定義如下: struct MAN{ struct POSITION pos; int dir; int newDir; float col[3]; }man; 我是在給col[]值的部分遇到了問題 我本來是想做成 man.col = { 1.0f, 1.0f, 0.0f}; 可是編譯不給過,所以目前是以下的方式給值 man.col[0] = 1.0f; man.col[1] = 1.0f; man.col[2] = 0.0f; 第二種方法編譯是可以過的 我想請問的是,要怎麼樣做 才能像第一種方法那樣 把一個陣列直接給到struct裡的資料陣列裡 而不用像第二種方法一樣 一個一個給 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.170.246

05/08 01:49, , 1F
第一種寫法是Initialize,宣告時才能那樣寫
05/08 01:49, 1F

05/08 01:50, , 2F
struct定義裡面 float col[3] = {1.f, 1.f, 0.f};
05/08 01:50, 2F

05/08 01:59, , 3F
其實我還有使用該struct產生man[0], man[1]等
05/08 01:59, 3F

05/08 02:00, , 4F
而每個man都有自己的col,所以我想要在外面做給值的動作
05/08 02:00, 4F

05/08 02:00, , 5F
而不在一開始宣告的時候給
05/08 02:00, 5F

05/08 02:03, , 6F
那我想你還是乾脆寫個function把那動作包成參數列吧
05/08 02:03, 6F

05/08 02:04, , 7F
把動作改成initColOfMAN(Man *m,float a,float b,float c)
05/08 02:04, 7F
文章代碼(AID): #1A0nw_ak (C_and_CPP)
文章代碼(AID): #1A0nw_ak (C_and_CPP)