簡體   English   中英

添加到結構的extern數組。 (C編程語言)

[英]Adding to extern array of struct. (C programming language)

我對C編程很新,所以如果這看起來太初級,我會道歉。 這是我的問題的縮小版本,我基本上試圖在索引0處將名為r_a的extern數組中存儲一個struct元素

頭文件:

  struct rescue_asset {
      char callsign[31];
      char type;
  };

  extern struct rescue_asset r_a[51]; 

主文件:

  #include "header_file.h"

  int main(int argc, char** argv) {
      strcpy(r_a[0].callsign, "ID");
  }

為什么這不起作用,解決方案是什么?

你錯過了; 從struct block結束。

正確:

struct Foo {
    int j;
};

extern只聲明數組,你必須通過put保留數組的內存空間

struct rescue_asset r_a[51]; 

例如,在主源文件中

Extern聲明了數組但沒有定義它。 在頭文件中定義它並在主文件中使用它

//Header file
struct rescue_asset {
char callsign[31];
char type;
}r_a[51]; 

//Main file
#include<header.h>
extern struct rescue_asset r_a[51];
int main(int argc, char** argv) {
strcpy(r_a[0].callsign, "ID");
return 0;
}
struct rescue_asset r_a[51];

你應該在某處定義這個變量,也許你可以在main.cpp中定義。 因為在頭文件中,您已將變量定義為extern。

暫無
暫無

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

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