先宣告一個usb的struct,
| struct USB { | |
| int usb1; | |
| int usb2; | |
| int usb3; | |
| }; |
之後用三種方式來assign值給他們,
如果mobile是一個變數,
那我可以直接使用"."來存取他的值。
struct USB mobile;
mobile.usb1 = 0;
mobile.usb2 = 1;
mobile.usb3 = 2;
如果不想使用指標的方式,那可以使用array的方式來存多個struct,
struct USB mobile[3];
那如果我要去改他裡面的值,如何把他傳去給function內部?
第一種是直接丟指標過去,然後改他裡面的值。
AssignValuePointer(mobile);
在AssignValue內,是用"struct USB usb[]"來宣告說我要接收usb struct的array指標變數,
之後也是一樣用 "." 來存取值取可,
因於他是直接修改address內的值,所以不需要回傳值。
第二種也是丟指標去,
但我利用一個暫存的struct來存值,最後再copy進去原本的array內,
memcpy(&usb[i], &temp, sizeof(struct USB));
memcpy是把source的全部byte copy到destination去,
所以要給位址,讓他找得到地方。
SourceCode
沒有留言:
張貼留言