(Translated by https://www.hiragana.jp/)
複合型別 - 维基百科,自由的百科全书

ふくごうがたべつ

ざい電腦でんのう科學かがくなかふくごうがたべついちしゅ資料しりょうがたべつ,它可以原始げんしがたべつかず其它てきふくごうがた別所べっしょ構成こうせい構成こうせい一個複合型別的動作,またしょうさく組合くみあい

structこれ C C++ てきふくごうがたべつ概念がいねんいちはたらんある成員せいいん一定いってい組合くみあい方式ほうしきしょ組成そせいてき資料しりょうがたべつよしためざい宣告せんこく使用しようりょうせきかぎ struct所以ゆえん它簡たたえため結構けっこうあるものさら精確せいかくせつ使用しようしゃ定義ていぎてき資料しりょう結構けっこう

ざい C++ うらstruct あずかclassてきただ一區別是預設的そん等級とうきゅうclassこれ私有しゆうてきstruct のり公有こうゆうてき

注意ちゅういつきかんてき概念がいねんせきかぎclassC++しん引入てきCげん也已具備ぐび糙的 struct かたべつたい所有しょゆうてき意圖いと目的もくてき, C++ てきstruct C struct てきちょうしゅう:几乎所有しょゆう合法ごうほうてき C struct 也是合法ごうほうてき C++ structなみゆうちょしょうどうてき語義ごぎ

struct 宣告せんこく組成そせいいちらんきよしたん,其中てきごと一個可以是任意型別。たいstruct 物件ぶっけんしょ需的もうかそんそくため全部ぜんぶらんてき總合そうごうさいじょう內部てきしろ

れい如:

 struct Account {
    int account_number;
    char *first_name;
    char *last_name;
    float balance;
 };

定義ていぎいちたたえため struct Account まとがたべつわかよう建立こんりゅう此型べつてきしん變數へんすう以寫ため struct Account myAccount;,它有いちmyAccount.account_number そん取的とりてき整數せいすうぐみけん,且有いちmyAccount.balance そん取的とりてき浮點すうくみけん,以及 first_name last_name くみけんmyAccount 包含ほうがんよんすう值,且這よんらん各自かくじ改變かいへんよしstruct account てきうつしほうゆう些累ぜいざい C だい碼中,typedef 語句ごくなみ罕見,其為 struct 提供ていきょういちさら簡便かんべんてき同義どうぎれい如:

 typedef struct Account_ {
    int    account_number;
    char   *first_name;
    char   *last_name;
    float  balance;
 } Account;

ざい C++ ちゅうなみ需要じゅよう typedefいんため使用しようりょう struct まとがたべつ定義ていぎやめ命名めいめい空間くうかんてきいち部分ぶぶん所以ゆえん該型べつしょうさく struct Account ある簡單かんたんてき Account

其它れい,一個使用了浮點數資料型別的三維向量複合型別,如此建立こんりゅう

 struct Vector {
   float x;
   float y;
   float z;
 };

いちVector ふくごうがたべつためがたべつてき變數へんすうめい velocity宣告せんこくため Vector velocity;以用てん运算(.)そん velocity てき成員せいいんれい如,velocity.x = 5;かい使 velocity まとぐみけん x とう於 5。

同樣どうよう,一個顏色結構可如此建立:

 struct Color {
   int red;
   int green;
   int blue;
 };

ざいさん維圖ぞうちゅう必須ひっす經常けいじょう不斷ふだんつい蹤每いち頂點ちょうてんてき位置いち顏色かおいろ使用しようまえしょ建立こんりゅうてき Vector Color ふくごうがたべつらい建立こんりゅう Vertex ふくごうがたべつ

 struct Vertex {
   Vector position;
   Color color;
 };

同樣どうようてき格式かくしき建立こんりゅういち Vertex かたべつてき變數へんすうVertex v;なみ以如方式ほうしきゆびすう值給 v

   v.position.x = 0.0;
   v.position.y = 1.5;
   v.position.z = 0.0;
   v.color.red = 128;
   v.color.green = 0;
   v.color.blue = 255;

原始げんしがたべつけん

编辑

つよし開始かいし使用しようてき structようらいけん組合くみあい資料しりょうがたべつゆう它是ようらい避開標準ひょうじゅん C 協定きょうてい,以建立原たちはらはじめがたべつけん查(primitive subtyping)。れい如,共同きょうどうてきもう協議きょうぎ依賴いらい於以事實じじつ,C へんやく以可あずかりょうてき方法ほうほうざい結構けっこうらんあいだしろよし此代このしろ

 struct ifoo_old_stub {
    long x, y;
 };
 struct ifoo_version_42 {
    long x, y, z;
    char *name;
    long a, b, c;
 };
 void operate_on_ifoo(struct ifoo_old_stub *);
 struct ifoo_version_42 s;
 . . .
 operate_on_ifoo(&s);

はた正確せいかくうんさく

まいり

编辑