Mi a C Programming Language?

โšก Okos รถsszefoglalรณ

C Programming Language egy รกltalรกnos cรฉlรบ, strukturรกlt nyelv, amelyet Dennis Ritchie alkotott meg 1972-ben a Bell Labs-nรกl. Gรฉpfรผggetlen, gyors, รฉs a rendszerszoftverek, operรกciรณs rendszerek, beรกgyazott firmware-ek รฉs modern nyelvek alapjรกt kรฉpezi, mint pรฉldรกul a C++, Javaรฉs Python.

  • ๐Ÿงฑ Elล‘szรถr is tanuld meg az alapokat: Mielล‘tt tovรกbblรฉpnรฉnk a mutatรณkra, struktรบrรกkra รฉs dinamikus memรณriรกra, sajรกtรญtsd el a fejlรฉceket, a main fรผggvรฉnyt, a printf fรผggvรฉnyt รฉs a zรกrรณjeleket.
  • ๐Ÿ›๏ธ Ismerd meg a tรถrtรฉnelmet: Az ALGOL โ†’ BCPL โ†’ B โ†’ C a leszรกrmazรกsi vonal; az ANSI C szabvรกnyt 1989-ben vรฉglegesรญtettรฉk, az ISO pedig 1990-ben ratifikรกlta.
  • ๐Ÿ‡ง๐Ÿ‡ท ร‰rtsd meg a fordรญtรกst: A fordรญtรณ objektumfรกjlokat bocsรกt ki, รฉs a linker egyetlen futtathatรณ fรกjllรก varรกzsolja ล‘ket, amely a cรฉlgรฉpen fut.
  • ๐ŸŒ Alkalmazd szรฉles kรถrben: A C nyelv operรกciรณs rendszereket, adatbรกzisokat, bรถngรฉszล‘ket, beรกgyazott firmware-eket, IoT-eszkรถzรถket รฉs fordรญtรณprogramok eszkรถzlรกncait mลฑkรถdteti.
  • ๐Ÿค– Pรกrosรญtsd a C-t mestersรฉges intelligencia eszkรถzรถkkel: A mestersรฉges intelligencia asszisztensei elmagyarรกzzรกk a mutatรณhibรกkat, biztonsรกgosabb fรผggvรฉnyeket javasolnak, รฉs a sima angol kรฉrรฉseket fordรญthatรณ C kรณdrรฉszletekkรฉ alakรญtjรกk.

C Programming Language

Mi a C Programming Language?

C egy รกltalรกnos cรฉlรบ programozรกsi nyelv, amely rendkรญvรผl nรฉpszerลฑ, egyszerลฑ รฉs rugalmasan hasznรกlhatรณ. Ez egy strukturรกlt, gรฉpfรผggetlen nyelv, amelyet alkalmazรกsok szรฉles skรกlรกjรกnak รญrรกsรกra hasznรกlnak โ€“ az olyan operรกciรณs rendszerektล‘l kezdve, mint a Windows รฉs Linuxtรณl az olyan รถsszetett programokig, mint a Oracle adatbรกzis, Git รฉs a Python tolmรกcs.

A C-t gyakran a modern programozรกs alapjรกnak nevezik. Ha mรกr ismered a C-t, sokkal kรถnnyebb lesz mรกs nyelveket is elsajรกtรญtani, mivel a legtรถbbjรผk kรถlcsรถnzi a C fogalmait. A szรกmรญtรณgรฉpes memรณria alapvetล‘ ismerete is segรญt, mivel a memรณria szinte minden C program kรถzponti eleme.

C Programming Language

IEEE โ€“ a tรญz legjobb programozรกsi nyelv 2018-ban.

Ez az รบtmutatรณ a C programozรกsi nyelv alapjait ismerteti: tรถrtรฉnetรฉt, alapvetล‘ parancsait, fล‘bb alkalmazรกsait, azt, hogy miรฉrt รฉrdemes mรฉg mindig tanulni, รฉs hogyan mลฑkรถdik a fordรญtรกsi modellje.

A C nyelv tรถrtรฉnete

A C nem elszigetelten jelent meg โ€“ korรกbbi rendszernyelvek lรกncolatรกbรณl nล‘tte ki magรกt:

  • ALGOL (1960): gyakran a programozรกsi nyelvek atyjรกnak nevezik. Az ALGOL bevezette a strukturรกlt programozรกst a szรฉlesebb fejlesztล‘i kรถzรถssรฉgbe, รฉs szรฉles kรถrben elterjedt az eurรณpai egyetemeken.
  • BCPL (1967): Basic Combined Programming Language, amelyet Martin Richards tervezett rendszerszoftverek รญrรกsรกra.
  • B (1970): Ken Thompson vezette be az AT&T Bell Laboratories-nรกl. A B nyelvet szรกmos BCPL-funkciรณ รถrรถkรถlte, รฉs korai UNIX-eszkรถzรถk รญrรกsรกhoz hasznรกltรกk.

A C nyelv tรถrtรฉnete

In 1972Dennis Ritchie alkotta C a Bell Laboratories-nรกl. A C a legjobb รถtleteket merรญtette az ALGOL-bรณl, a BCPL-bล‘l รฉs a B-bล‘l, รฉs olyan รบj koncepciรณkkal egรฉszรญtette ki, amelyek kifejezล‘bbรฉ tettรฉk bรกrmelyik elล‘djรฉnรฉl.

A C nyelv szorosan kapcsolรณdik a UNIX-hoz โ€“ a UNIX operรกciรณs rendszer nagy rรฉszรฉt C nyelven รญrtรกk รกt. Ahogy a C nyelv elterjedt a Bell Labs-en tรบl is, szรกmos platformra megjelentek kereskedelmi fordรญtรณprogramok, รฉs a nyelv tรถbb inkompatibilis dialektussรก fejlล‘dรถtt. Az egysรฉgessรฉg helyreรกllรญtรกsa รฉrdekรฉben az Amerikai Nemzeti Szabvรกnyรผgyi Intรฉzet (ANSI) 2013-ban kiadott egy C szabvรกnyt. 1989, รฉs a Nemzetkรถzi Szabvรกnyรผgyi Szervezet (ISO) ratifikรกlta azt 2013-ban. 1990A szabvรกnyosรญtott vรกltozatot szรฉles kรถrben รบgy emlegetik, mint ANSI C.

C tรถrtรฉnete

C tรถrtรฉnete.

Nyelvek, mint pl C++ รฉs a Java kรถzvetlenรผl a C nyelvbล‘l fejlesztettรฉk ki, รฉs sok modern nyelv รกtveszi annak szintaxisรกt รฉs konvenciรณit. Ezรฉrt a C kรฉpezi a mai szoftverek nagy rรฉszรฉnek alapjรกt.

C Alapvetล‘ parancsok

A kรถvetkezล‘ parancsok alkotjรกk szinte minden C program vรกzรกt.

C alapparancs Magyarรกzat
#include <stdio.h> Tartalmazza a C kรถnyvtรกr szabvรกnyos input-output header fรกjljรกt a fordรญtรกs elล‘tt.
int main() A fล‘ funkciรณ โ€“ minden C program vรฉgrehajtรกsa โ€“ itt kezdล‘dik.
{ A fล‘ funkciรณblokk kezdetรฉt jelzi.
/* some_comments */ Egy megjegyzรฉs. A fordรญtรณ mindent figyelmen kรญvรผl hagy a kettล‘ kรถzรถtt. /* รฉs a */.
printf("Hello, World!"); Kiรญrja a kimenetet a kรฉpernyล‘re.
getch(); Egyetlen karaktert olvas be a billentyลฑzetrล‘l (nem szabvรกnyos, fล‘kรฉnt a Turbo C-vel hasznรกlatos).
return 0; Leรกllรญtja a main fรผggvรฉnyt, รฉs 0 รฉrtรฉket ad vissza az operรกciรณs rendszernek.
} A fล‘ funkciรณblokk vรฉgรฉt jelzi.

Hol hasznรกljรกk a C-t? Fล‘bb alkalmazรกsok

A C olyan helyeken fut, ahol a legtรถbb felhasznรกlรณ soha nem lรกtja, de a terรผlete hatalmas. Gyakori terรผletek tรถbbek kรถzรถtt:

  1. Beรกgyazott rendszerek รฉs mikrokontroller firmware.
  2. Rendszerszintลฑ alkalmazรกsok รฉs illesztล‘programok.
  3. Asztali alkalmazรกsok, beleรฉrtve szรกmos Adobe termรฉket.
  4. Webbรถngรฉszล‘k รฉs bล‘vรญtmรฉnyeik โ€” GoogleA krรณm nagy mennyisรฉgลฑ C-t tartalmaz.C++ kรณd.
  5. Adatbรกzisok โ€” MySQL az egyik legnรฉpszerลฑbb C nyelven รญrt adatbรกzis.
  6. Operating rendszerek โ€” Apple macOS (Darwin), Microsoft WindowsA Linuxot รฉs tรถrtรฉnelmileg a Symbiant is C nyelven fejlesztettรฉk.
  7. Fordรญtรณprogramok, nyelvi futรกsi kรถrnyezetek รฉs interpreterek.
  8. Dolgok internete (IoT) eszkรถzei รฉs otthonautomatizรกlรกsi firmware-ek.

Miรฉrt รฉrdemes C nyelvet tanulni?

A C szรกmos programozรกsi nyelv alapja, รญgy a C elsajรกtรญtรกsa minden tovรกbbi nyelvet kรถnnyebbรฉ tesz. Ugyanazokat az adattรญpusokat, operรกtorokat รฉs vezรฉrlล‘ utasรญtรกsokat vezeti be, amelyeket a ...-ban is lรกtni fog. C++, Java, Python, รฉs a Menj.

A C-be valรณ befektetรฉs fล‘ okai a kรถvetkezล‘k:

  • Sebessรฉg: A C natรญv kรณdra fordul, รฉs rรฉszletes memรณria-vezรฉrlรฉst biztosรญt.
  • Hordozhatรณsรกg: A C nyelven รญrt programok รบjrafordรญthatรณk รฉs gyakorlatilag bรกrmilyen platformon futtathatรณk.
  • Szerkezet: Egy C program modulokra van osztva, ami megkรถnnyรญti a tesztelรฉst, karbantartรกst รฉs hibakeresรฉst.
  • Kompakt mag: A C nyelvnek mindรถssze 32 kulcsszava, szรกmos adattรญpusa รฉs egy hatรฉkony beรฉpรญtett kรถnyvtรกra van.
  • Nyรบjthatรณsรกg: Hozzรกadhatsz sajรกt fรผggvรฉnyeket egy kรถnyvtรกrhoz, รฉs รบgy hรญvhatod meg ล‘ket, mintha beรฉpรญtettek lennรฉnek.
  • Karrierรฉrtรฉk: A beรกgyazott, a kernel รฉs a nagy teljesรญtmรฉnyลฑ szerepkรถrรถk tovรกbbra is erล‘s C nyelvi kรฉszsรฉgeket igรฉnyelnek.

Hogyan C Programming Language Mลฑvek

A C egy fordรญtott nyelv. A fordรญtรณprogram beolvassa a forrรกskรณdot, รฉs lรฉtrehoz egy objektumfรกjlt, amelyet a gรฉp megรฉrt. A linker ezutรกn egy vagy tรถbb objektumfรกjlt (รฉs a hivatkozott kรถnyvtรกrakat) egyetlen futtathatรณ fรกjllรก egyesรญt, amely futtathatรณ a cรฉlplatformon. Az alรกbbi รกbra a teljes vรฉgrehajtรกsi folyamatot mutatja.

Hogyan C Programming Language Mลฑvek

Sokfรฉle fordรญtรณprogram รฉrhetล‘ el โ€“ online รฉs offline egyarรกnt โ€“, รฉs mindegyik ugyanazt a folyamatot kรถveti. A nรฉpszerลฑ vรกlasztรกsi lehetล‘sรฉgek kรถzรฉ tartoznak:

  • GCC โ€” a GNU Compiler Collection, a Linux รฉs szรกmos beรกgyazott cรฉlprogram de facto szabvรกnya.
  • Csengรฉs โ€” az LLVM-alapรบ kezelล‘felรผlet, amelyet alapรฉrtelmezรฉs szerint hasznรกlnak a kรถvetkezล‘n: macOS.
  • MinGW โ€” Minimalista GNU a kรถvetkezล‘hรถz: Windows, elhozza a GCC-t Windows felhasznรกlรณk szรกmรกra.
  • Hordozhatรณ C fordรญtรณ (pcc).
  • Turbรณ C โ€” a klasszikus fordรญtรณprogram, amelyet mรฉg mindig szรกmos tudomรกnyos kurzuson hasznรกlnak.

A C elล‘nyei รฉs hรกtrรกnyai

Az alรกbbi tรกblรกzat รถsszefoglalja azokat a kompromisszumokat, amelyeket mรฉrlegelnie kell, mielล‘tt a C-t vรกlasztanรก egy รบj projekthez.

Elล‘nyรถk Hรกtrรกnyok
Gyors, alacsony szintลฑ hozzรกfรฉrรฉs a memรณriรกhoz รฉs a hardverhez. A manuรกlis memรณriakezelรฉs hibรกkat okozhat, pรฉldรกul szivรกrgรกsokat รฉs puffer tรบlcsordulรกsokat.
Hordozhatรณ kรผlรถnbรถzล‘ architektรบrรกk รฉs operรกciรณs rendszerek kรถzรถtt. Nincs beรฉpรญtett objektumorientรกciรณ vagy generikusok.
Kompakt szintaxis, mindรถssze 32 kulcsszรณval. Nincs beรฉpรญtett biztonsรกgi hรกlรณ โ€“ a meghatรกrozatlan viselkedรฉs csendben รถsszeomolhat.
Fordรญtรณprogramok, hibakeresล‘k รฉs kรถnyvtรกrak hatalmas รถkoszisztรฉmรกja. Bล‘beszรฉdลฑbb a magas szintลฑ alkalmazรกskรณdhoz a szkriptnyelvekhez kรฉpest.
Foundation modern nyelvek esetรฉben โ€“ a kรฉszsรฉgek kรถnnyen รกtadhatรณk. Lassabb termelรฉkenysรฉg azoknรกl a feladatoknรกl, ahol a felรผgyelt nyelvek elegendล‘ek lennรฉnek.

Bevรกlt gyakorlatok C nyelven รญrรกsakor

Az alรกbbi szokรกsok biztosรญtjรกk a C kรณdbรกzisok olvashatรณsรกgรกt, hordozhatรณsรกgรกt รฉs a gyakori memรณriahibรกktรณl valรณ mentessรฉgรฉt:

  • Figyelmeztetรฉsek engedรฉlyezรฉse: fordรญtsa le -Wall -Wextra -Werror olyan aprรณ problรฉmรกk miatt nem sikerรผl az รฉpรญtkezรฉs.
  • Vรกltozรณk inicializรกlรกsa: soha ne olvasson olyan vรกltozรณbรณl, amelyhez mรฉg nem rendeltek รฉrtรฉket.
  • Visszatรฉrรฉsi รฉrtรฉkek ellenล‘rzรฉse: malloc, a fรกjl I/O รฉs a rendszerhรญvรกsok minden hibรกt visszatรฉrรฉsi kรณdokon keresztรผl jeleznek.
  • Pรกrosรญtรกs minden malloc val,-vel free: Hasznรกljon statikus elemzรฉst vagy AddressSanitizert a szivรกrgรกsok รฉszlelรฉsรฉhez.
  • Biztonsรกgosabb karakterlรกnc-fรผggvรฉnyeket rรฉszesรญts elล‘nyben: hasznรกl snprintf helyett sprintf รฉs a strncpy tรถrล‘dรฉssel.
  • Hasznรกljon fejlรฉcvรฉdล‘ket: vรฉdje meg minden fejlรฉcet egy #ifndef / #define / #endif ล‘r.
  • Tรถrekedj a szabvรกnyra: Hordozhatรณ ANSI/C99/C11 kรณdot รญrj, kivรฉve, ha kรฉnyszerรญtล‘ okod van a fordรญtรกsi kiterjesztรฉsek hasznรกlatรกra.

GYIK

Dennis Ritchie 1972-ben alkotta meg a C nyelvet a Bell Laboratories-nรกl. Az ALGOL, a BCPL รฉs a B รถtleteire รฉpรญtve C nyelven รญrta รกt az AT&T UNIX operรกciรณs rendszerรฉnek nagy rรฉszรฉt.

A C egy procedurรกlis nyelv, amely a fรผggvรฉnyekre รฉs a strukturรกlt programozรกsra รถsszpontosรญt. C++ objektumorientรกciรณt, osztรกlyokat, sablonokat รฉs a Standard Template Library-t adja hozzรก, mikรถzben megtartja aping A C szintaxisรกnak nagy rรฉsze.

A C nyelvet gyakran kรถzรฉpszintลฑ nyelvnek nevezik. Elรฉg magas szintลฑ ahhoz, hogy olvashatรณ รฉs hordozhatรณ legyen, mรฉgis elรฉg alacsony szintลฑ ahhoz, hogy a memรณriacรญmeket รฉs a hardverregisztereket kรถzvetlenรผl mutatรณkon keresztรผl manipulรกlja.

Az ANSI C 32 foglalt kulcsszรณt definiรกl. Later olyan szabvรกnyok, mint a C99 รฉs a C11, mรฉg nรฉhรกnyat hozzรกadtak, tรถbbek kรถzรถtt inline, _Boolรฉs _Static_assert, de a mag kicsi รฉs kรถvetkezetes marad.

Az ANSI C a C nyelvnek az Amerikai Nemzeti Szabvรกnyรผgyi Intรฉzet รกltal 1989-ben szabvรกnyosรญtott รฉs az ISO รกltal 1990-ben ratifikรกlt vรกltozata. Hordozhatรณ szintaxist, szabvรกnyos kรถnyvtรกrat รฉs fordรญtรณprogram viselkedรฉsรฉt hatรกrozza meg.

Igen. A C tovรกbbra is operรกciรณs rendszereket, beรกgyazott firmware-eket, adatbรกzisokat, nyelvi futtatรณkรถrnyezeteket รฉs nagy teljesรญtmรฉnyลฑ kรถnyvtรกrakat mลฑkรถdtet. Szรกmos mestersรฉges intelligencia รฉs IoT eszkรถzlรกnc a C-re tรกmaszkodik a sebessรฉg รฉs a hordozhatรณsรกg รฉrdekรฉben.

A mestersรฉges intelligencia asszisztensei egyszerลฑ angol nyelven magyarรกzzรกk el a fordรญtรกsi hibรกkat, รฉs biztonsรกgosabb alternatรญvรกkat javasolnak a kockรกzatos fรผggvรฉnyekre, mint pรฉldรกul gets, รฉs a kezdล‘knek pรฉldรกkkal illusztrรกlva bemutatjรกk a mutatรณ รฉs a memรณria alapfogalmait.

Igen. A mestersรฉges intelligencia รกltal fejlesztett kรณdasszisztensek olyan egyszerลฑ angol kรฉrรฉseket, mint pรฉldรกul a โ€žCSV-fรกjl beolvasรกsa รฉs a mรกsodik oszlop รถsszegzรฉseโ€, mลฑkรถdล‘ C programokkรก alakรญtanak, รฉs elmagyarรกzzรกk az egyes fรผggvรฉnyeket, hogy a kezdล‘k a futtatรกs elล‘tt รกttekinthessรฉk azokat.

Foglald รถssze ezt a bejegyzรฉst a kรถvetkezล‘kรฉppen: