Проверено несколько вопросов / ответов о переполнении стека, но ни один из них не соответствует тому, что я пытаюсь сделать.Вот оно:
У меня есть объектный файл ac myobject.c
, содержащий тип структуры, заполненный во время выполнения (как инициализируется основным файлом с функцией main()
. Ниже приведена скелетная структура myobject.c
:
typedef struct
{
uint16_t ID;
float tempo;
char unit[10];
unsigned long timestamp;
} prv_data_t;
static uint8_t prv_value(lwm2m_data_t* dataP,
prv_data_t* tempData)
{
uint8_t ret = COAP_205_CONTENT;
//TO DO here
.
.
.
return ret;
}
static uint8_t prv_read(..paramList)
{
//TO DO here
.
.
//then call prv_value here
result = prv_value((*tlvArrayP)+i, tempData);
return result;
}
object_t * get_object(){
//this func get called by main.c to initialize myobject
}
Скелетная структура файла main.c
:
myFunc(mypar p) {
}
main(){
//initialize myobject
//.....
//access myobject struct member here, pass to myFunc call
myFunc(tempo)
}
main.c
инициализирует myobject.c
. Теперь я хочу получить доступ к tempo
члену prv_data_t
из myobject.c
для некоторых вычислений. Как мне выполнить такую задачу, не выставляя prv_data_t
в main.c
?
РЕДАКТИРОВАТЬ: вот что я имею в виду под main.c
инициализирует myobject.c
ивсе другие объекты, пожалуйста:
/*
* Now the main function fill an array with each object,
* Those functions are located in their respective object file.
*/
objArray[0] = get_security_object();
if (NULL == objArray[0])
{
fprintf(stderr, "Failed to create security object\r\n");
return -1;
}
.
.
.
Основной файл фактически содержит функцию main()
.