Я делаю тип структуры в заголовочном файле data.hИспользование Структуры, определенные в заголовке файлы C
struct student{
float tutFee;
};
struct employees{
float salary;
};
struct person{
char firstName[10];
char type; //s for student //e for employee
union {
struct student student;
struct employees employ;
}/*EDIT ->*/common;
};
тогда, когда я попытка объявить-структуру типа человека в menu.c файле
#include "menu.h"
#include "data.h"
int initateProgram(){
struct person temp;
}
это дает мне ошибку говоря
menu.c:25:19: error: storage size of ‘temp’ isn’t known
что приводит меня к мысли, что либо menu.c по какой-то причине не имеет доступа к data.ho г я объявляя STRUCT неправильно любое понимание ценится
EDIT
Добавлен имя объединения в приведенном выше коде. Тем не менее дает мне ошибку я компиляции следующим
gcc -o a2 uni_personal.c menu.c
uni_personal.c главный файл, который вызывает функцию initateProgram() в menu.c Попытка объявить структуры в любом месте по-прежнему получает мне ошибку Спасибо за помощь до сих пор
Edit 2
я все еще получаю ошибку, но когда я упрощать программу он уходит так, очевидно, ошибка не имеет никакого отношения к т его конкретный код
Посмотрите на предварительно обработанную форму, например. с помощью 'gcc -C -E menu.c> menu.i', затем загрузите' menu.i' в свой редактор. –
Это компилируется для меня с помощью GCC.Хотя с '-std = c99 -pedantic' он предупреждает, что неназванные объединения нестандартны. –
Хотя неназванные профсоюзы являются законными C11. Пожалуйста, покажите, как вы компилируете и убедитесь, что показанный код воспроизводит проблему. – mafso