Wstęp

Wstęp

Ponieważ w naszej pierwszej części tego artykułu powiedzieliśmy, że się spodziewaliśmy, czytelnika, będziesz mieć pewną wiedzę na temat programowania, w tej części chcemy pomóc Ci uzyskać, gdzie C stoi w porównaniu z innymi językami programowania, które możesz znać. Wybór tych języków był dość trudny ze względu na różne kryteria, ale ostatecznie zatrzymaliśmy się w C ++, Perl i Python. Ponieważ języki programowania można klasyfikować na wiele sposobów (na przykład w zależności od paradygmatu, składni lub stylu), nie próbowaliśmy znaleźć języków w tej samej kategorii co C. Zamiast tego, ponieważ wspomniane języki są dość popularne w świecie Linux, wybraliśmy je, wspominając, jakie miejsce jest miejscem każdego języka w wielkim schemacie, do czego jest ogólnie używany i oczywiście różnice między nimi a C. Ten artykuł zostanie ustrukturyzowany w następujący sposób: Zaczniemy od ważnych elementów każdego języka, takich jak Deklaracja zmienna, pisanie lub struktura i porównaj to z tym, jak to się dzieje z C. W ten sposób mamy nadzieję, że przed rozpoczęciem będzie ci wyobrażenie o języku. Części, z których wykonano ten artykuł, będą dokładnie takie jak ogłoszona struktura tego artykułu, aby ułatwić zrozumienie.

Porównanie

Typy, operatorzy, zmienne

C++

C ++ został początkowo nazwany „C z klasami”, co wiele mówi o jego „związku z C. Jest powszechnie postrzegany jako Superset C (a zatem C ++ Niezary operator przyrostu ++), wprowadzając funkcje programowania zorientowane na obiekty. Typy są zasadniczo używane tak samo, z Bool Wprowadzono w C ++ dla operacji logicznych. Zasadniczo, mówiąc o różnicach C i C ++, większość z nich pochodzi z koncepcji OOP C ++. Na przykład C ++ ma przeciążenie operatora, termin specyficzny dla OOP, co oznacza, że ​​operator może mieć różne implementacje w zależności od danych, na których działa. Na przykład w C ++ możesz to zrobić:

 A << 2 

Teraz, jeśli A jest liczbą całkowitą, wykonuje to działanie bitwise (lewa przesunięcie o 2), ale jeśli A jest strumieniem wyjściowym, powyższa linia spróbuje napisać do niego „2”. Tego rodzaju zachowanie jest jednym z powodów, dla których C ++ jest krytykowane za umożliwienie słabych praktyk programowania. Zmienne i stałe są deklarowane w taki sam sposób, jak w C.

Perl

Z Perl jest prostszy: ma tylko trzy typy danych. To są skalary, tablice i skróty lub tablice asocjacyjne. Skalary są prefiksowane znakiem dolara, tablice są prefiksowane z @ i skróty są prefiksowane za pomocą %s. Różnica w odniesieniu do typów polega na tym, że Perl jest dynamicznym językiem programowania, podczas gdy C jest słaby, co oznacza, że ​​w C będziecie radzić sobie z odpowiednimi deklaranniami zmiennych, takich jak „Ta zmienna jest liczbą całkowitą” lub „Ta inna zmienna jest wskaźnikiem do wskaźnika, do którego należy wskaźnik Float ”. Różnice dotyczące operatorów arytmetycznych są właśnie takie, że Perl ma „**” dla wykładniczego, podczas gdy C potrzebuje funkcji, aby to osiągnąć.

Pyton

Zmienna deklaracja Pythona jest oparta na kontekście. Na przykład chcemy zadeklarować ciąg, liczbę całkowitą i pływakową:

var1 = „String” var2 = 100 var3 = 100.98

Z C byłoby to jak

char* var1 = "string"; int var2 = 100; float var3 = 100.98;

C nie ma typu ciągu, ponieważ inne języki, więc ciąg należy zadeklarować jako szereg znaków lub wskaźnik do char, podczas gdy Python oferuje liczby, słowniki, ciągi, listy i krotki jako typy danych.

Kontrola przepływu

Wszystkie opisane tutaj cztery języki mają wiele wspólnych rzeczy, jeśli chodzi o kontrolę przepływu. Na przykład podczas uruchamiania Jeśli blok, żaden nie wymaga końcowego słowa kluczowego, jak fi w Bash lub Algol68. Mówiąc o tym, jeśli bloki, składnia jest podobna, więc jeśli używasz programowania w C ++, Perl lub Python. To samo można powiedzieć o reszcie operacji kontroli przepływu: dla, while, while, przełącznik/obudowa lub łam/kontynuuj. Ponownie, jeśli jesteś przyzwyczajony do sposobu, w jaki trzy języki wykonują kontrolę przepływu, potrzebujesz kilku minut, aby przyzwyczaić się do C. Niektóre główne różnice mogą być: Perl ma więcej słów kluczowych do radzenia sobie Redo, ostatni Lub Następny. Python ma przechodzić Słowo kluczowe dla… nie robienie nic zasadniczo, ale jest przydatne, gdy potrzebujesz pustej klasy. Na przykład:

klasa Pusty: przechodzić

Funkcje

Prosta deklaracja funkcji w C byłaby taka:

int sum (int a, int b)  powrót A + B; 

Byłaby to funkcja o nazwie suma, która zwraca liczbę całkowitą z obliczania sumy „argumentów, A I B, także liczby całkowite. Zanotuj Bloki które robią wyraźne ograniczenie, gdzie zaczyna się ciało funkcji i kiedy się kończy. W perl termin funkcja jest używana zamiennie z podprogramem. Możesz, jak w C, najpierw zadeklarować funkcję, a następnie zdefiniować ją lub zadeklarować i zdefiniować w jednym ujęciu, tak jak zrobiliśmy powyżej. Musisz użyć pod słowo kluczowe, aby powiedzieć interpreterowi Perl, co chcesz zrobić. W Pythonie nasz przykład suma wyglądałaby tak:

def suma (a, b): powrót A + B

Być może zauważyłeś, że nic nie powiedzieliśmy o C++. Cóż, o ile nam się to podchodzi, nie ma różnicy między C i C ++ w tym zakresie.

Wskaźniki i tablice

Wskaźnik to zmienna, która utrzymuje lokalizację pamięci innej zmiennej. Podobnie jak w C, wskaźniki i tablice są łączone dość mocno i oferują wiele zaawansowanych funkcji programisty C ++. Ponownie nie ma ważnej różnicy między nimi. Perl ma Bibliografia które oferują tę samą funkcjonalność. Na przykład ten kawałek kodu definiuje zmienną o nazwie var i odniesienie do niej o nazwie Refvar:

$ var = 20; $ refvar = \ $ var;

W C zrobilibyśmy coś w rodzaju

int var; var = 20; int *refvar; refvar = &var;

Perl, podobnie jak Python, nie pozwala programistowi na bezpośrednie manipulację pamięcią. Niektórzy uważają to za dobrą rzecz, inni nie. Python oferuje Ctypes, która jest biblioteką, która oferuje funkcję Pointer () do używania wskazówek. Krótka historia brzmi: Python nie używa wskazówek. Długa historia jest taka, że ​​sposób Pythona do odniesienia zmiennych, czyli tylko wartości uzupełniającej, różni się od programatora używanego do C.

Jeśli użyłeś tablic na C ++ lub Perl, koncepcja jest w większości taka sama. Perl ma inną składnię, ale jeśli już wiesz, czym jest tablica, wszystko będzie dobrze w C. Python oferuje szyk moduł, który oferuje tę funkcjonalność, ponieważ ma już listy jako typ podstawowy, z wyjątkiem tablic są bardziej restrykcyjne.

Struktury

W C struktura to rekord, który zawiera stały, oznaczony zestaw obiektów, wszystkie owinięte w jeden. Na przykład:

struct Konto klienta int; nazwa char *; równowaga float; ;

Cytując Wikipedia, „W C ++, a Struktura to klasa zdefiniowana z struct Słowo kluczowe. Jego członkowie i klasy podstawowe są domyślnie publiczne. Klasa zdefiniowana z klasa Słowo kluczowe ma domyślnie członków prywatnych i klas podstawowych. Jest to jedyna różnica między strukturami i klasami w C++.". W perl do wersji 5 struktury były problemem (lub jej brak), ale teraz jest perldsc (Perl Data Structures Cookbook), dostępna w Perldoc.org. W Pythonie zawsze możesz (prawie) używać do tego krotek lub słowników.

W tym pliki

Jak widziałeś w pierwszej części, w C One wykorzystuje dyrektywy preprocesor. Ta funkcjonalność jest również oferowana przez C ++, z tą samą składnią, z wyjątkiem plików nagłówkowych nazywanych $ Nazwa.HPP i że nie potrzebujesz rozszerzenia pliku:

#włączać 

iostream jest równoważnikiem C ++ Stdio.H. W Perl mamy używać słowo kluczowe do tego i można go używać w ten sposób:

używać Moduł;

W Pythonie odpowiednik użycia jest import, używane dokładnie w taki sam sposób, jak w Perl, z wyjątkiem tego, że na końcu nie wymaga półkolisu.

Inne rozważania

Wielu z was zauważyło, że wszystkie języki wybrane do naszego porównania są zorientowane na obiekty, podczas gdy C nie jest. Nie jest to niesprawiedliwe porównanie, ponieważ gdybyśmy wybrali Fortran lub Prolog jako nasze warunki porównywania, są szanse, ponieważ wielu programistów dzisiaj nie używa tych języków, nasz artykuł nie byłby bardzo popularny. Z drugiej strony uważaliśmy to za sposób na zmoczenie stóp, ponieważ nawyk jest częścią ludzkiej natury, a jeśli kiedykolwiek użyjesz jednego lub więcej z tych języków, będzie łatwiej, gdy zaczniesz uczyć się C. Tak więc ta część artykułu jest przeznaczona jako pomocna ręka, a jeśli udało nam się to zrobić, to jest w porządku.

C i c++

Niektórzy z was mogą się zastanawiać: jeśli C ++ jest tak podobny do C, ale jest bardziej złożony i oferuje więcej, po co zawracać sobie głowę C? To był temat omówiony bardziej niż powinien, i postaramy się udzielić odpowiedzi. Po pierwsze, C jest prostszy. K&R ma 266 stron, podczas gdy „język programowania C ++” twórcy, Bjarne Strutrup, ma 1090. - powiedział Nuff. Po drugie, istniejący kod. Niezależnie od architektury sprzętowej, systemu operacyjnego lub celu, C jest szeroko rozpowszechnione, a następnie niektóre. Od jądra OS po biblioteki GUI, C jest tam i nie ma zamiaru odejść nigdzie. Nie oznacza to, że C ++ nie jest używany przez wielu programistów. Mówimy tylko, że prędzej czy później będziesz musiał pracować z kodem C lub użyć jej języka, więc wiedza C zawsze jest przystojna na CV. Po trzecie, jeśli chcesz nauczyć się C i C ++, lepiej zacząć od C, ze względu na jego „wspomnianą prostotę, a ponieważ kiedy będziesz mieć podstawy, C ++ będzie łatwiejszy do nauczenia. Wreszcie chodzi o właściwe narzędzie do pracy. Jeśli potrzebujesz szybkiego kodu, możliwość przejścia na niski poziom i prosty język, idź z C.

Wniosek

Po tej drugiej części tego artykułu zaczniemy uczyć się programowania C w Linux, ponieważ uważamy, że zbyt wiele części wprowadzających nie ma sensu. Będziemy chętnie Ci tam pomóc.

Oto, czego możesz się spodziewać następnego:

  • I. C Opracowanie w Linux - Wprowadzenie
  • Ii. Porównanie C i innych języków programowania
  • Iii. Typy, operatorzy, zmienne
  • Iv. Kontrola przepływu
  • V. Funkcje
  • Vi. Wskaźniki i tablice
  • VII. Struktury
  • VIII. Podstawowe I/O
  • IX. Styl kodowania i zalecenia
  • X. Budowanie programu
  • Xi. Opakowanie dla Debiana i Fedory
  • XII. Uzyskanie pakietu w oficjalnych repozytoriach Debiana

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Najlepszy czytnik PDF dla Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Jak zainstalować czytnik Adobe Acrobat na Ubuntu 22.04 Jammy…
  • Wprowadzenie do Vagrant
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Ubuntu 20.04 Przewodnik
  • Hung Linux System? Jak uciec do wiersza poleceń i…