C++中如何定义全局结构体数组

问题遇到的现象和发生背景

想要在不同的cpp文件中用同一个结构体数据,但是编译失败

遇到的现象和发生背景,请写出第一个错误信息

img

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#pragma once
#include
#include"Menu.h"
typedef struct Bookinfo
{
    vectorbook_menu;
    int table_num;
}Book_Info;
extern Book_Info book_info[11];

运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

网上根据全局结构体写的,在.cpp文件也引用了定义结构体的头文件 以及 用extern又声明一遍

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏

extern 相当于声明,你需要有个地方去定义。

C++无法在函数里定义全局结构体数组。

原因如下:

  1. 在函数内定义的变量是局部变量;
  2. 在函数外定义的变量是全局变量;
  3. 在类中定义的变量是成员变量。

结构体数组也是一种变量,因此无法在函数中定义全局的结构体数组。

Book_Info 就已经是struct的别名了
struct Bookinfo * book_info是个啥