Структура в заголовочном файле приводит к ошибке в исходном файле - PullRequest
0 голосов
/ 25 июня 2018

У меня есть структура, определенная внутри capi_utils.h, которая выглядит следующим образом:

#ifndef _CAPI_UTILS_H_
# define _CAPI_UTILS_H_

...

struct ScalarVariable{
    char name[63];
    float value;
    uint8_T DataID;
    char type[50];
};

...
#endif

Внутри capi_utils.c Я попытался создать переменную для хранения структуры, подобной этой

struct ScalarVariable sVariable;

Который выдает ошибку, только когда я пытаюсь установить значение внутри структуры следующим образом:

sVariable.name = paramName;

Сообщение об ошибке:

capi_utils.c:27: error: invalid use of undefined type `struct ScalarVariable'

Что я делаю не так?

РЕДАКТИРОВАТЬ 1:

Я просто должен был включить capi_utils.h. Я не думал, что должен был, потому что по какой-то причине я понял разные исходные файлы и заголовки.

РЕДАКТИРОВАТЬ 2:

Чтобы уточнить, я даже получал ошибки при попытке установить DataID, а не только массив.

void GetValueFromAdress(const char_T*  paramName,
                     void*          paramAddress,
                     uint8_T        slDataID,
                     unsigned short isComplex,
                     uint_T*        actualDims,
                     uint_T         numDims,
                     real_T         slope,
                     real_T         bias) {

sVariable.DataID = slDataID;

}

будет производить error: invalid use of undefined type 'struct ScalarVariable'

1 Ответ

0 голосов
/ 25 июня 2018

В cape_utlis.c вам нужно включить заголовочный файл, например:

#include cape_utlis.h

Кроме того, измените это:

sVariable.name = paramName;

на следующее:

strcpy(sVariable.name, paramName)

Чтобы скопировать строку, оканчивающуюся NULL, в C, вы используете функцию strcpy , а не оператор присваивания.

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