Я все еще изучаю C, несмотря на некоторые рабочие программы, но теперь я пришел к структурам, и боли начались. У меня уже есть рабочая программа, в XC8
под MPLABX
(цель - PIC18
), составленная Main.c
, заголовком и некоторыми дополнительными файлами .c. В заголовке у меня уже есть массив структур (дескрипторы шрифтов), отлично работающий.Структуры массива в C
Теперь я хочу добавить новый кусок кода (динамические меню), поэтому я создал дополнительный файл заголовка (struct.h) с определением структуры и массива, а также новый файл C (menus.c), который будет обрабатывать меню; оба файла включены в main.c
Когда я начал писать в меню для строк assignements я получил следующие ошибки:
недопустимый размер
, а затем
отсутствует базовый тип; INT предполагается
Это (очень упрощенные) куски оскорбительных кодов:
STRUCT.h
#ifndef STRUCT_H
#define STRUCT_H
typedef struct Row
{
char *label;
int posX;
int posY;
};
struct Row rows[20];
#endif /* STRUCT_H */
menus.c
#ifndef STRUCT_H
#include "struct.h"
#endif
rows[0].posX = 1;
Ошибка поднимается на последний ряд. Я на 100% уверен, что это моя очень глупая ошибка, но где? Благодаря
'rows [0] .posX = 1;' должно быть в некоторой функции. – MikeCAT
'typedef struct Row' ... to? –
«Это (очень упрощенные) фрагменты оскорбительных кодов« Пожалуйста, напишите [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – MikeCAT