繁体   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