реклама на сайте
подробности

 
 
> Список.
Jenya7
сообщение Mar 3 2016, 09:22
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



есть структура.
Код
struct parent
{
  uint8_t name[40];
  uint32_t a;
  uint32_t b;
  struct parent *next
}parent;

можно организовать список со вставкой и удалением элементов списка.
а если я хочу вставить список в эту структуру. возможно ли такое?

struct parent
{
uint8_t name[40];
uint32_t a;
uint32_t b;
тут вставить список
struct parent *next
}parent;

я имею в виду вставить список других элеметов
Код
struct child
{
  uint8_t name[40];
  uint32_t a;
  uint32_t b;
  struct child *next
}child;


Сообщение отредактировал Jenya7 - Mar 3 2016, 09:37
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Mar 5 2016, 09:59
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



не нужно переводить в Ц. Просто добавьте в проект и добавьте еще один .cpp-файл с определением объекта кучи.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Mar 5 2016, 13:38
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Сергей Борщ @ Mar 5 2016, 15:59) *
не нужно переводить в Ц. Просто добавьте в проект и добавьте еще один .cpp-файл с определением объекта кучи.

при компиляции не находит heapcfg.h. наверное эти файлы часть фреймворка emb-lib.

не хочет компилятор компилить cpp файлы. выдает кучу ошибок. например не понимает namespace.

Сообщение отредактировал Jenya7 - Mar 5 2016, 13:45
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 5 2016, 15:50
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Jenya7 @ Mar 5 2016, 15:38) *
при компиляции не находит heapcfg.h. наверное эти файлы часть фреймворка emb-lib.

Это файл "тонких настроек" менеджера памяти. Пока в нем только объявляется объект, исключающий одновременное обращение в многопоточной системе. Поскольку у вас (полагаю) не используется многопоточная ОС, вам достаточно объявить в этом файле ничего не делающий класс:

Код
#ifndef HEAPCFG_H__
#define HEAPCFG_H__

struct heap_guard_default
{
    void lock()   { }
    void unlock() { }
};

#endif // HEAPCFG_H__


Также вам понадобится файл .cpp с определением объекта менеджера кучи примерно такого содержания:
Код
#include <stdint.h>
#include <heap.h>

heap::pool<4096> HeapPool;   // 4096 - размер "кучи" в байтах

heap::manager<heap_guard_default> heap::Manager(HeapPool);

После этого в вашем проекте будут работать malloc(), free() new, delete.

Цитата(Jenya7 @ Mar 5 2016, 15:38) *
не хочет компилятор компилить cpp файлы. выдает кучу ошибок. например не понимает namespace.
Очевидно, вы заставили ваш компилятор компилить этот файл в режиме обычного C. Если это ИАР, то в настройках проекта есть галочка "определять язык по расширению". Вам надо выбрать ее.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016