Poprzedni temat «» Następny temat
Przesunięty przez: tasza
2007-09-10, 11:06
Co znajduje się w bibliotece stdc++
Autor Wiadomość
Koppel 



Wiek: 34
Dołączył: 24 Lip 2005
Posty: 482
Skąd: Gliwice
Wysłany: 2007-08-12, 13:17   Co znajduje się w bibliotece stdc++

Witam
Piszę właśnie spory program na procesor ARM7, który chciałem przenieść pod C++. Jednak okazuje się, że po dołączeniu biblioteki standardowej języka C++ rozmiar wynikowego kodu rośnie o około 40kB. To sporo, biorąc pod uwagę, że mam około 200kB miejsca na cały program.

Postanowiłem więc wyłączyć bibliotekę stdc++. Moje pytanie brzmi: jakie nakłada to ograniczenia na pisany kod? Znalazłem już informację, że nie będę mógł korzystać z komponentów stl oraz operatorów new i delete. To mi nie przeszkadza, ponieważ, tam gdzie to potrzebne, implementuję własne "bezpieczne" algorytmy zarządzania pamięcią przydzielaną dynamicznie.

Czy będę miał jakieś inne ważne ograniczenia? To jest jeszcze chwila gdzie mogę jednak wrócić do pisania kodu w czystym C.

Dodano:
Właśnie wypraktykowałem, że bez stdc++ nie działają konstruktory i destruktory. To sprawia, że raczej skupię się na C. Może ktoś zna jakieś "okrojone" wersje biblioteki stdc++ dla procesorów ARM?
 
     
Guzer 


Wiek: 27
Dołączył: 08 Lis 2006
Posty: 148
Skąd: Szczecin
Wysłany: 2007-08-12, 15:34   

Podobna sytuacja pojawia się kiedy pisze się własny system operacyjny i chce się zastosować C++, a biblioteki standardowej nie ma. Z tego co wiem trzeba zdefiniować własne operatory new i delete, w najprostszym przypadku można podpiąć pod malloc() i free(). Niestety nie mam pojęcia jak to zrobić :(
 
 
     
Koppel 



Wiek: 34
Dołączył: 24 Lip 2005
Posty: 482
Skąd: Gliwice
Wysłany: 2007-08-13, 08:23   

Guzer napisał/a:
Z tego co wiem trzeba zdefiniować własne operatory new i delete, w najprostszym przypadku można podpiąć pod malloc() i free().

Tylko, że samych operatorów new i delete nie potrzebuję. Obiekty chciałem tworzyć statycznie. W takim przypadku jednak konstruktory także nie były wywoływane. Może da się to jakoś obejść? To jedyne czego mi brakowało.

Pytam teraz bardziej z ciekawości, ponieważ postanowiłem pisać kod w C.
 
     
Guzer 


Wiek: 27
Dołączył: 08 Lis 2006
Posty: 148
Skąd: Szczecin
Wysłany: 2007-08-13, 13:01   

Zazwyczaj wywoływaniem konstruktorów/destruktorów zajmują się właśnie new/delete. Prawdopodobnie te operatory są po cichu wywoływane w tle nawet jeżeli tworzy/niszczy się obiekt bez ich użycia.
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,02 sekundy. Zapytań do SQL: 12