Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

projektowanie programów w C, pisanie duzych programów

Ostatnio zmodyfikowano 2019-03-10 20:42
Autor Wiadomość
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)
P-174136
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.
P-174142
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 :)
P-174157
jankowalski25
» 2019-03-10 18:30:08
C nie jest obiektowe
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”.
P-174158
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)
P-174159
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.
P-174160
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ą
P-174161
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.
P-174162
« 1 » 2
  Strona 1 z 2 Następna strona