簡體   English   中英

在其他結構中使用結構。 C

[英]Using structures in other structures. C

我在一個.h文件中有三個結構。

typedef struct name{
      char first[20];
      char middle;
      char last[20];
    } PersonName;

typedef struct address{
      char street[20];
      char city[20];
      char state[20];
      int zipCode;
        } PersonAddress;

typedef struct employee{
      PersonName bob;
      PersonAddress place;
      int id;
    } Employee;

我想做的是使用員工結構來完成其他結構的工作。

我打個電話:

     void setName(struct employee* object, char* f, char* l, char* m);

到我的.c文件,應該在以下位置接收此文件:

 void setName(struct employee* object, char* f, char* l, char* m){
        strncpy(object.bob.first,f,20);
        strncpy(object.bob.last,l, 20);
        object.bob.middle=m[0];

    }

為了能夠在不使用其他結構的情況下更改值。 我只是看錯了方向嗎? CMD說:“要求鮑勃不是某種結構。任何幫助將不勝感激。

object是一個指針,因此您需要鍵入object-> bob才能訪問bob。 bob是一個結構,因此您需要object-> bob.first才能首先訪問。

另外,您可能需要用一個常量替換所有這20個常量,然后再進行更改,忘記更改其中的一個,並且到處都有bug。

鮑勃是個指針。 為了訪問其成員,請嘗試使用->運算符代替。

換一種說法:

void setName(struct employee* object, char* f, char* l, char* m){
  strncpy(object->bob.first,f,20);
  strncpy(object->bob.last,l, 20);
  object->bob.middle=m[0];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM