В моем приложении есть структура, которая называется LED_strip. Мне нужно, чтобы эта структура была видна в других исходных файлах, поэтому я напечатал ее в одном из моих заголовочных файлов, а затем объявил ее как extern ниже в том же файле.
В исходном файле, непосредственно связанном с этим заголовком, я определил фактическую структуру. Теперь в другом исходном файле я включил упомянутый заголовок. В этом файле я определил функцию, которая принимает внешнюю структуру в качестве аргумента.
Проблема в том, что компилятор выдает ошибку в моем втором заголовочном файле, в объявлении вышеупомянутой функции - он говорит, что такого типа нет. Что я делаю не так?
CV_test.h
typedef struct {
char * name;
int voltage;
int nominal_current;
int psu_current;
int power;
int current_limit;
int cal_value;
uint8_t wait_tim;
uint8_t cal_flag;
uint8_t valid_flag;
uint8_t difference;
} LED_strip;
extern LED_strip test_struct_container;
CV_test.c
#include "CV_test.h"
LED_strip test_struct_container;
Здесь я включаю заголовок и определяю структуру типа LED_strip.
commands.c
#include "CV_test.h"
#include "commands.h"
void cmd_get_struct(const char * buf, LED_strip *LED)
{
sscanf(buf,"%s %d %d %d %d %d %d %d", LED->name, &LED->nominal_current, &LED->voltage,
&LED->psu_current, &LED->power, &LED->current_limit, &LED->wait_tim, &LED->difference);
}
Теперь это моя функция;он принимает указатель на мою структуру в качестве аргумента;на данный момент ошибки не указаны.
commands.h - это строка, в которой я получаю свою ошибку:
void cmd_get_struct(const char *, LED_strip *);
error: unknown type name 'LED_strip'
Это фактическое сообщение об ошибке. Честно говоря, у меня нет идей. Мне кажется, все сделано правильно, но я не могу найти решение.