Publicitate
Învățarea programării este o experiență cumulativă. Pe lângă învățarea sintaxei limbajului ales, trebuie să învățați și principiile generale pe care le folosesc toate limbajele de programare.
Înțelegerea și învățarea programării C poate fi descurajantă, dar există câteva idei de bază cu care merită să vă familiarizați când începeți. Un proiect simplu este o modalitate excelentă de a învăța elementele fundamentale ale C.
Deci de unde ar trebui să începi? Salutând!
1. Salut Lume!
Prima parte a aproape fiecărui curs de codificare este Salut Lume program. Trecând peste el în detaliu, evidențiază câteva dintre modurile în care C diferă de alte limbi. Pentru început, deschideți a editor de text sau IDE Editori de text vs. IDE-uri: Care este mai bun pentru programatori?Alegerea între un IDE avansat și un editor de text mai simplu poate fi dificilă. Vă oferim câteva informații pentru a vă ajuta să luați această decizie. Citeste mai mult la alegere și introduceți acest cod:
#include /* acesta este un script Hello World în C */ int main (void) { printf("Bună ziua, lume! \n"); returnează 0; }
Această scurtă bucată de cod se imprimă pe consolă înainte de a încheia programul. Salvați-l într-un loc ușor de reținut ca buna. Acum trebuie să compilați și să vă construiți fișierul.
Făcându-l să alerge
De obicei, nu va trebui să instalați niciun software suplimentar pe computer pentru a rula scripturi C. Deschideți o fereastră de terminal (sau prompt de comandă dacă executați Windows) și navigați la directorul în care ați salvat scriptul.
Modul în care compilați și rulați fișierul variază de la sistem la sistem:
- Utilizatori Windows: Faceți fișierul executabil tastând cl salut.c și apăsând enter. Acest lucru va crea hello.exe în același folder, pe care îl puteți rula tastând Buna ziua.
- Utilizatori Linux și macOS: Tip gcc -o salut salut.c și apăsați Enter pentru a-l face executabil și rulați-l tastând ./Buna ziua.
Indiferent de metoda pe care o utilizați, rularea scriptului ar trebui să vă arate asta:

Dacă nu a funcționat pe Windows, asigurați-vă că rulați prompt de comandă în modul administrator. Pentru macOS, poate fi necesar să instalați Xcode din App Store și urmați acești pași din StackOverflow.
Acum, să ne uităm la program, linie cu linie, pentru a vedea cum funcționează și pentru a-l îmbunătăți!
Under the Hood: înțelegerea limbajului C
Preprocesoare
Scriptul pe care tocmai l-ați creat începe cu includerea unei biblioteci.
#include
Prima linie din script se numește a preprocesor. Aceasta se realizează înainte ca restul scriptului să fie compilat. În acest caz, îi spune scriptului să folosească stdio.h bibliotecă. Există un număr mare de preprocesoare disponibile pentru diferite sarcini.
Stdio.h se ocupă de a primi informații de la utilizatorul programului și de a le transmite informații înapoi.
/* acesta este un script Hello World în C */
Acest rând următor este un comentariu. Slash-ul și steaua îi spun compilatorului să ignore tot ce se află între el și steaua și slash-ul de închidere. Deși acest lucru poate părea inutil, a putea să vă lăsați și altora note clare despre ceea ce face codul dvs. este un obicei esențial în care trebuie să intrați.
Funcția principală
int main (void)
Fiecare program C trebuie să aibă un principal funcţie. Main este o funcție care returnează un număr întreg, notat cu int. Parantezele de după principal sunt pentru argumentele sale, deși în acest caz, nu este nevoie de niciunul, motiv pentru care utilizați gol cuvânt cheie.
Scrieți codul care urmează să fie efectuat între două acolade.
{ printf("Bună ziua, lume! \n"); returnează 0; }
În interiorul funcției, apelați printf() funcţie. Exact ca principal(), printf este o funcție. Diferența este că printf este o funcție din stdio biblioteca pe care ați inclus-o la început.
Printf imprimă pe consolă orice între paranteze, între ghilimele. The \n este o secvență de evadare numită newline, care îi spune compilatorului să treacă la următoarea linie din consolă înainte de a continua.
Rețineți că aceste rânduri se termină în punct și virgulă, pe care compilatorul îl folosește pentru a împărți o sarcină de la următoarea. Acordați o atenție deosebită acestor puncte și virgulă – pierderea lor este cauza numărul unu pentru care lucrurile nu merg bine!
În cele din urmă, funcția revine cu numărul 0, terminând programul. The principal() funcția trebuie să returneze întotdeauna un număr întreg și întoarcere = 0; semnalează computerului că procesul a avut succes.
Înțelegerea fiecărui pas al acestui script este un început excelent în învățarea atât a sintaxei C, cât și a modului în care funcționează limbajul.
2. Crearea propriilor funcții C
Puteți crea propriile funcții personalizate în C. În loc să imprimați Hello World în funcția principală, creați o nouă funcție care să o facă pentru dvs.
void print_for_me() { printf("Bună ziua, lume! \n"); }
Să descompunem asta.
gol este un cuvânt cheie, ceea ce înseamnă că următoarea funcție nu va returna nimic.
print_for_me() este numele funcției, iar parantezele goale arată că nu necesită argumente pentru a funcționa. Un argument este orice informație pe care trebuie să o transmiteți unei funcții pentru a o face să funcționeze - mai târziu veți adăuga un argument propriu pentru a schimba rezultatul! Notă: Aceasta nu este aceeași cu funcția main() de mai sus, care a folosit void. Această funcție nu poate accepta argumente, în timp ce aceasta poate (dar în acest caz, nu trebuie).
Blocul de cod ar trebui să vă fie familiar – este doar declarația de tipărire din funcția principală originală.
Acum, puteți apela această funcție din funcția principală.
int main (void) { print_for_me(); print_for_me(); returnează 0; }
Puteți vedea aici un avantaj al folosirii propriei funcții. Mai degrabă decât să tastezi printf(„Bună ziua, lume! \n”) de fiecare dată, puteți apela funcția de două ori.
În acest moment, s-ar putea să nu pară atât de important, dar dacă funcția dvs. print_for_me conținea o mulțime de linii de cod, posibilitatea de a o apela atât de ușor este un mare economisire de timp!

Aceasta este o idee fundamentală de programare pe care o veți întâlni pe parcursul educației. Scrieți propria funcție o dată, mai degrabă decât să scrieți aceleași bucăți mari de cod iar și iar.
3. Utilizarea prototipurilor de funcție în C
Prototipurile sunt una dintre principalele moduri în care începătorii C diferă de alte limbi. Pe scurt, un prototip este ca o previzualizare a unei funcții definite mai târziu. Dacă scrieți funcția print_for_me() după funcția principală, este posibil să primiți un avertisment la compilare:

Mesajul de avertizare vă spune că compilatorul a intrat în funcția print_for_me înainte de a fi declarată, așa că nu putea fi sigur că va funcționa corect atunci când programul rulează.
Codul ar funcționa în continuare, dar avertismentul poate fi evitat cu totul prin utilizarea unui prototip.
#include void print_for_me(); int main (void) { print_for_me(); print_for_me(); returnează 0; } void print_for_me() { printf("Bună ziua, lume! \n"); }
Privind programul complet, puteți vedea că prototipul pentru print_for_me() există la începutul programului, dar nu conține nimic. Funcția prototip arată compilatorului cum ar trebui să arate funcția și dacă necesită argumente sau nu.
Aceasta înseamnă că atunci când îl apelați în funcția principală, compilatorul știe dacă este apelat corect și poate arunca un avertisment sau o eroare dacă este necesar. Acesta poate fi ceva care pare ciudat acum, dar cunoașterea lor acum vă va ajuta în viitor.

Acest program încă funcționează fără un prototip, dar este o practică bună de utilizat. Ieșirea arată în continuare la fel deocamdată, să o modificăm pentru a o face mai personală!
4. Transmiterea de argumente la funcțiile C
Schimbarea Scriptului
Pentru acest pas final, veți cere numele utilizatorului și veți înregistra intrarea acestuia. Apoi îl veți folosi în funcția creată anterior. În C, cuvintele nu sunt cunoscute ca șiruri de caractere ca în alte limbaje de programare.
În schimb, sunt o serie de caractere individuale. Simbolul pentru o matrice este [] iar cuvântul cheie este char. Începeți prin a vă actualiza funcția de prototip la începutul scriptului:
#include void print_for_me (nume caracter[]);
Acum, compilatorul va ști că funcția mai târziu în script preia o matrice de caractere numite Nume. Până acum, acest personaj nu există. Actualizați funcția principală pentru a o crea și utilizați-o pentru a stoca intrarea utilizatorului:
int main (void) { nume caracter[20]; printf("Introduceți numele: "); scanf("%s", nume); print_for_me (nume); print_for_me ("Toata lumea!"); returnează 0; }
Prima linie din main creează o matrice de caractere cu 20 de spații posibile numite nume. Apoi, utilizatorului i se cere să introducă numele folosind printf. Următoarea linie folosește o nouă funcție numită scanf care ia următorul cuvânt pe care îl introduce utilizatorul.
The „%s” spune funcției că ar trebui să stocheze datele ca șir și să o apeleze Nume.
Modificarea funcției
Acum, când apelați print_for_me, puteți include Nume în paranteze. Pe rândul următor, veți vedea că puteți trece și alte caractere atâta timp cât acestea sunt între ghilimele. De ambele ori, ceea ce este între paranteze este trecut la funcția print_for_me.
Modificați-l acum pentru a utiliza noile informații pe care le oferiți:
void print_for_me (nume caracter[]) { printf("Bună ziua, "); pune (nume); }
Aici puteți vedea că parantezele au fost actualizate la fel ca prototipul de la începutul scriptului. În interior, imprimați în continuare salut folosind printf. O nouă funcție aici este pune. Aceasta este o versiune mai avansată a printf.
Orice lucru pus între paranteze va fi imprimat pe consolă și o nouă linie (the \n ai folosit mai devreme) este adăugat automat.
Salvați și compilați codul în același mod în care ați făcut-o mai devreme - rețineți că puteți numi programul cu ceva diferit dacă nu doriți să suprascrieți programul anterior. L-am numit pe al meu salut2:

După cum ar trebui să vedeți, programul preia intrarea și o folosește în funcție, înainte de a trimite salutul prestabilit „Toată lumea!” dând din nou două ieșiri separate aceleiași funcție.
ABC-urile programării C
Acest program este simplu, dar unele dintre conceptele din el nu sunt. Codul C mai avansat trebuie scris foarte bine pentru a preveni blocările. Acesta este motivul pentru care mulți cred că este un limba excelentă de învățat mai întâi deoarece insuflă obiceiuri bune noilor programatori.
Alții cred că învățarea C++ este o idee mai bună, deoarece se bazează pe C, păstrând în același timp controlul inferior al sistemului. (Există și Rust de luat în considerare - este un limbaj de programare interesant este similar sintactic cu C++.)
Un lucru este sigur: limbi precum Python sunt mult mai prietenoși pentru începători. Pentru o limbă veche, C este încă folosit peste tot, dar Python poate fi limba viitorului 6 motive pentru care Python este limbajul de programare al viitoruluiVrei să înveți sau să-ți extinzi abilitățile de programare? Iată de ce Python este cel mai bun limbaj de programare de învățat anul acesta. Citeste mai mult !
Ian Buckley este jurnalist independent, muzician, interpret și producător video care locuiește în Berlin, Germania. Când nu scrie sau pe scenă, el se chinuiește cu electronice sau coduri de bricolaj, în speranța de a deveni un om de știință nebun.