W jaki sposób pisane są duże kobyły w językach strukturalnych, np. w C?

0

Jak w temacie. W jaki sposób pisane są duże kobyły w językach strukturalnych np. C. W książce od C widziałem implementacje stacku, same metody i tablica zmiennych dla jego danych w external nad mainem. Przecież to jakaś masakra. A jakbym chciał dwa stacki? albo użyć tego kodu w innym miejscu?, ok te tablice można przekazać jako parametr. ale jak bym przez wydajność chciał mieć jeszcze count, i maksymalny i minimalny element, 3 parametry w push() oO. Można napisać strukturę ale to takie kulawe, jakaś wartość będzie źle zmieniona(a w C łatwo o błąd) czy ktoś ja zmodyfikuje i cały misterny plan w p... .Nie kumam tego...

0

Dlatego wymyślili C++. Nie słyszał o bibliotekach, modułach?

0

C++ też do niedawna było kulawe - pomylisz się w jednym miejscu ze wskaźnikiem i nagle się okazuje że zmieniasz działanie całkowicie innej części aplikacji bo jej pogrzebałeś po pamięci. Stosunkowo niedawno pojawiły się w standardzie jakieś smart pointery i różne takie ale z tego co wiem nadal nie ma wymogu ich używania
Dlatego wymyślili Javę i C#

0

Odpowiedź jest prosta: po prostu nie są pisane... Język C ma inne przeznaczenie, na pewno nie typowe aplikacje biznesowe.

1

Oczywiście w C robi się duże systemy, ale to są aktualnie raczej niszowe domeny lub wymagania.

Jak masz dobrego architekta i kilku seniorów to w C też da się porządnie pisać.
To jest bardzo mały i prosty język. I do tego strukturalny! ;-)
Czy hasło "strukturalny" może być jeszcze zaletą? Zapytaj programistów COBOL.

http://programmers.stackexchange.com/questions/103897/is-the-c-programming-language-still-used

W C możesz pisać obiektowo:
https://developer.gnome.org/gobject/stable/howto-gobject-construction.html

Kilka rzeczy o nowoczesnym C znajdziesz w książkach:

  • "21st Century C: C Tips from the New School"
  • "C in a Nutshell: The Definitive Reference"
1

W C pisząc moduł wszystkie funkcje i zmienne oznaczam jako static i nigdzie ich nie udostępniam, dopiero, jeśli widzę sens i mam przetestowany moduł, że działa, wiem jakie parametry funkcja potrzebuje, udostępniam taką funkcję jako globalną. Czasami jest też inaczej - jest gotowe API, do którego musisz napisać kod, wtedy te funkcje uwazam za udostępnione, natomiast wszystko pozostałe jako static. Zmiennych globalnych raczej nie używam od dawna, bo to nastręcza tylko problemów, a w razie konieczności poprawy szukanie wszystkich wystąpień w obcych modułach to masakra jest.Szczególnie jak sięokaże, że kod twój będzie używany wielowątkowo, szybko przekonasz się jak złe jest używanie zmiennych globalnych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1