Когда я скомпилирую свой код в C, я получаю следующую ошибку: «ошибка LNK2001: неразрешенный внешний символ _staff», а также ошибка о нерешенных внешних. Похоже, он думает, что моему персональному массиву нужен внешний файл, но его просто массив для удерживания Лица (Союз двух типов). Как исправить проблему? Начало моего кода приведено ниже.Как исправить неразрешенную внешнюю ошибку в C
#include <stdio.h>
#include <string.h>
//employee struct
typedef struct {
//...
} Employee;
//Manager struct inheriting from employee struct
typedef struct {
Employee employee;
int bonus;
} Manager;
//union of manager and employee
typedef union{
Employee e;
Manager m;
} Person;
//functions
Employee newEmployee(char n[], ...);
Manager newManager(...);
double getManagerSalary(Manager man);
Manager boss;
Employee harry ;
Employee tommy;
Person staff[];
//main code
int main(void)
{
boss = newManager(...);
harry = newEmployee(...);
tommy = newEmployee(...);
staff[3];
staff[0].m = boss;
staff[1].e = harry;
staff[2].e = tommy;
...
}
Employee newEmployee(char n[], double s, int year, int month, int day)
{
...
}
- это весь код, создающий ошибку? Как это могло произойти? – ShinTakezou
(и о 'Person staff []', это не массив, который вы можете заполнить чем угодно ... рассмотрите его как «заполнитель» для массива, он должен быть '[1]' иметь место для 1 элемента) – ShinTakezou
"Inheriting"? Это не наследование, и в любом случае наследование отсутствует. C. Выведите ошибку, которую компилятор выбрасывает. – m0skit0