|
C++ в микроконтроллерах, посветите безграмотного. |
|
|
|
 |
Ответов
|
Mar 18 2008, 07:39
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(IgorKossak @ Mar 18 2008, 09:37)  Именно так и объявленный объект создаётся In section .bss, а также создаются конструкторы, пишущие в эту область памяти. Объект может не иметь конструктора. и все методы могут быть конст. Вот пример который кидает данные в скецию .rodata Это конечно простой объект без VMT - реально просто структура с методами. Но такой подход может быть полезен никакого оверхида Код class cls { public: int a; int b; int foo(void) const; };
extern const cls a; extern const cls b;
const cls a = {4,5}; const cls b = {6,7};
int cls::foo(void) const { return a + b; } а вот листинг Код \ In section .rodata, align 4 11 const cls a = {4,5}; \ a: \ 00000000 040000000500 DC32 4, 5 \ 0000
\ In section .rodata, align 4 12 const cls b = {6,7}; \ `b`: \ 00000000 060000000700 DC32 6, 7 \ 0000 13
\ In section .text, align 4, keep-with-next 14 int cls::foo(void) const 15 { 16 return a + b; \ _ZNK3cls3fooEv: \ 00000000 0168 LDR R1,[R0, #+0] \ 00000002 4068 LDR R0,[R0, #+4] \ 00000004 0818 ADDS R0,R1,R0 \ 00000006 7047 BX LR ;; return 17 } 18
|
|
|
|
|
Mar 18 2008, 08:36
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(KRS @ Mar 18 2008, 13:39)  Объект может не иметь конструктора. и все методы могут быть конст. Вот пример который кидает данные в скецию .rodata Это конечно простой объект без VMT - реально просто структура с методами. Но такой подход может быть полезен никакого оверхида Код class cls { public: int a; int b; int foo(void) const; }; Тут у вас объявлен POD тип. На самом деле это просто обычная С-структура. POD типы могут лежать в RO памяти без проблем, как и подобает обычным С-типам. Правильнее было бы просто написать: struct cls { ... }; Заведите хотя бы одно не public поле, все станет не так шоколадно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Сообщений в этой теме
-=Sergei=- C++ в микроконтроллерах Mar 17 2008, 09:20 Kirill Frolov Цитата(-=Sergei=- @ Mar 17 2008, 12... Mar 17 2008, 09:47 -=Sergei=- Цитата(KRS @ Mar 17 2008, 13:06) объект с... Mar 17 2008, 10:43 IgorKossak Точно, всё дело было в инициализации.
Я создавал к... Mar 18 2008, 08:08 IgorKossak С объектами производных классов тоже не просто.
Да... Mar 18 2008, 08:42 dxp Цитата(IgorKossak @ Mar 18 2008, 14:42) С... Mar 18 2008, 12:58 KRS Цитата(dxp @ Mar 18 2008, 11:36) Тут у ва... Mar 18 2008, 09:02
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|