Re: Tajemná zákoutí jazyka C.

Miroslav Mraz mrazik na volny.cz
Pátek Leden 8 16:58:45 CET 2016


Na tohle téma bylo napsáno spousta textu, který většinou vůbec nic 
neřeší. Jediná rada je udržovat disciplínu, do pole zapisovat (číst) na 
jediném místě, kde se zároveň kontrolují meze. I v ansi C můžete 
uplatnit objektový přístup.
C++ je na tom lépe, pole může být chráněno (protected) což si samostatné 
metody pro čtení a zápis (z vnějšku třídy) přímo vynutí. Pak můžete 
použít řadu vymožeností od přetížení operátorů [], -> * atd, po použití 
smart pointerů.
Ale co jsem tak koukal, tak všechny ty moderní vymoženosti, které mají 
práci usnadnit a předejít chybám produkují jen nové chyby (při nevhodném 
použití), které se hůře hledají.
Takže pokud se vám to rozrůstá do nepřehlednosti, udělejte nový 
komplexní návrh a celé to přepište nejlépe do objektů. Ušetříte si 
spoustu práce.
Co zde míníte pod pojmem Garbage collector není zcela jasné, může to být 
uklízeč nepotřebných sekcí z gnu linkeru, který je dobré používat nebo 
automatické uvolňování objektů z haldy, které ansi C ani C++ sice 
nepoužívá, ale vše směřuje k tomu, že se tím budeme muset zabývat i na 
těch jednočipech. Bohužel.

Mrazík

Dne 8.1.2016 v 14:30 Jiří Nesvačil napsal(a):
> Taky se temto zapisum vyhnu. Radeji to delam v ansi-c pres struct a
> vlozim prvy do struct s odkazy na ne.
>
> Jinak, kdyz jsme u te slozitosti, co delate se stringy ci obecne polem
> na takovem STM cpu v ansi-c ? Nekolik poli ci stringu se da uhlidat, ale
> s rustem.... .
> Ja jsem napriklad predelal vsechny metody na praci se stringy v ansi-c,
> aby pracovaly s max delkou a nekde to nepreteklo. Docela se mi libi i
> pascal notace tj. dostat zde delku na prvni pozici. Garbage collector
> jsem zatim nepouzil, i kdyz to k tomu vede.
>
> Jirka
>
>


Další informace o konferenci Hw-list