Почему структура, определенная моим типом, не видна в другом заголовке? - С - PullRequest
0 голосов
/ 14 октября 2019

В моем приложении есть структура, которая называется 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'

Это фактическое сообщение об ошибке. Честно говоря, у меня нет идей. Мне кажется, все сделано правильно, но я не могу найти решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...