aksen Temat założony przez niniejszego użytkownika |
projektowanie programów w C, pisanie duzych programów » 2019-03-09 08:56:55 Witam
Poszukuję książek na temat projektowania w języku C i pisania duzych programów.
Ktoś zna jakieś tyuły lub materiały w sieci?
(nie interesują mnie materiały o projektowaniu w C++ ani o projektowaniu ogólnie) |
|
DejaVu |
» 2019-03-09 19:18:41 Czego oczekujesz po języku C, że C++ Ci nie odpowiada? Nauczysz się dobrze projektować w C++ to i będziesz umiał projektować dobrze w C. |
|
aksen Temat założony przez niniejszego użytkownika |
» 2019-03-10 17:39:55 C nie jest obiektowe więc wymaga przy projektowaniu/pisaniu dużych programów nieco innego podejścia niż C++
dlaczego nie wszedzie da się pisać w C++: 1. W niektórych systemach nie można używać C++ (np. część systemów wbudowanych nie posiada biblioteki do C++ i brakuje miejsca w flashu do jej dodania) 2. Rozbudowa gotowych programów pisanych w C wymaga użycia C. 3. pewnie coś by się jeszcze znalazło :) |
|
jankowalski25 |
» 2019-03-10 18:30:08 Niby dlaczego? Możesz pisać obiektowo, nie widzę przeszkód. Zamiast klas masz struktury, zamiast metod masz funkcje przyjmujące jako pierwszy argument wskaźnik na strukturę, zamiast funkcji wirtualnych możesz ręcznie ustawiać VTABLE/VPTR, i tak dalej. Nawet jeśli przeczytasz jakąś książkę o projektowaniu czegoś większego (miliony linii kodu) w C++, to i tak w wielu przypadkach będzie się dało zastosować to w odniesieniu do języka C (lub napisać pomocnicze programy generujące odpowiedni kod w C). 1. Po to są cross-compilery, aby nie trzeba było budować binarek zawsze tam, gdzie będą uruchamiane. A wtedy nie trzeba martwić się o to, aby rozmiar kompilatora był minimalny, tylko można zbudować sobie binarkę gdzieś indziej i ją przesłać na właściwe urządzenie. 2. Niekoniecznie. Możesz skompilować taki program w C++ i pisać go dalej w tym języku. 3. Doprecyzuj to „coś”. Wtedy może problem będzie lepiej postawiony niż takie mgliste i ogólne „muszę pisać w C”. |
|
aksen Temat założony przez niniejszego użytkownika |
» 2019-03-10 18:58:43 >1. Po to są cross-compilery, aby nie trzeba było budować binarek zawsze tam, gdzie będą uruchamiane. A wtedy nie trzeba martwić się o to, aby rozmiar kompilatora był minimalny,
a co ma crosscompiler do braku biblioteki w systemie wbudowanym? jest to oczywiste, że do kompilacji na inny procesor używa się crosscompilera
masz np. 4MB (tak 4MB) na system + biblioteki + programy i nie masz miejsca na dodanie nowych bibliotek
>2. Niekoniecznie. Możesz skompilować taki program w C++ i pisać go dalej w tym języku.
Masz program napisany w C, a rozbudowujesz go dalej w C++? po co robić takie pomieszanie z poplątaniem? (jeśli nie jest to naprawdę koniecznie z jakiegoś powodu) jak dla mnie to jest droga do tworzenia gównokodu a nie kodu
do tego C nie jest w 100% zgodny z C++ więc skompilowanie większego programu w C jako C++ nie obejdzie się bez modyfikacji (czasem niemałych)
poza tym patrz punkt 1, nie masz biblioteki do C++ ani miejsca na nią (za to w systemie wbudowanym masz bibliotekę do C) |
|
pekfos |
» 2019-03-10 19:42:56 poza tym patrz punkt 1, nie masz biblioteki do C++ ani miejsca na nią (za to w systemie wbudowanym masz bibliotekę do C) |
Można pisać w C++ bez żadnych bibliotek. problem będzie lepiej postawiony niż takie mgliste i ogólne „muszę pisać w C”. |
Co jest nie tak z "muszę pisać w C"? C nie jest obiektowe więc wymaga przy projektowaniu/pisaniu dużych programów nieco innego podejścia niż C++ |
Nie bardzo. W C++ nie musisz pisać obiektowo, a nawet jak to robisz, to takie samo zachowanie możesz uzyskać w C. "Pisanie dużych programów" to innymi słowy używanie swojej znajomości języka, by nie pisać kodu spaghetti. I tyle. Duży program w C to po prostu większy worek funkcji niż mały program w C. |
|
aksen Temat założony przez niniejszego użytkownika |
» 2019-03-10 19:48:26 >Można pisać w C++ bez żadnych bibliotek.
jasne, można linkować statycznie, ale programy wtedy rosną |
|
pekfos |
» 2019-03-10 19:53:39 jasne, można linkować statycznie, ale programy wtedy rosną |
C i C++ nie narzucają konieczności linkowania jakichkolwiek bibliotek, w tym standardowych. |
|
« 1 » 2 |