Я пытаюсь объявить структуры в main (), которые я построил в отдельном файле, но получаю сообщение об ошибке:
error: storage size of 'phone' isn't known
Вот код для main. c:
#include "header.h"
int main(int argc, char **argv)
{
struct firstAndLast name;
struct contact phone;
struct address adr;
struct allInfo individual;
print_person(individual);
return 0;
}
Это файл функции. c, в который я записал структуры:
#include "header.h"
struct firstAndLast
{
char firstName[20];
char lastName[20];
};
struct contact
{
int pNumber;
};
struct address
{
struct firstAndLast person;
struct contact phoneNumber;
char streetAddress[100];
char city[50];
char province[50];
char postalCode[10];
};
struct allInfo
{
struct address addr;
char occupation[50];
double salary;
};
void print_person(struct allInfo indiv)
{
printf("%s \n",indiv.addr.person.firstName);
}
И это файл header.h:
#ifndef nS
#define nS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct firstAndLast;
struct contact;
struct address;
struct allInfo;
void print_person(struct allInfo indiv);
#endif
Я не уверен, почему я получаю эту ошибку. Я поместил все функции в файл заголовка и использовал #include "header.h" как для моего основного. c, так и для файлов. c, поэтому он должен распознавать существующие структуры. Есть ли проблема с тем, как я объявил структуры в main () или как я перечислил их в заголовке? Я не вижу опечаток в своем коде, поэтому я действительно потерян и не знаю, что я делаю неправильно.