Home » Articole » Articole » Calculatoare » Programare » C » Introducere în programarea în C: „Hello, World!”

Introducere în programarea în C: „Hello, World!”

postat în: C 0

Tradiția ne spune să începem cu un program care afișează salutul „Hello, World!” pe ecran, urmat de o nouă linie, apoi afișarea. Mai jos este codul sursă C care face exact asta. Tastați acest cod în editorul de text/IDE preferat și salvați-l într-un fișier numit hello.c.

#include <stdio.h>

int main(void)
{
    printf("Hello, World!\n");
    return 0;
}

Analiza codului sursă

Deși acesta este un program foarte simplu, multe semnificații ascunse sunt împachetate în numeroasele simboluri pe care le vedeți în cod. Deși compilatorul dvs. îl înțelege, puteți doar ghici ce ar putea face codul, presărat cu câteva cuvinte familiare în limba engleză. Unul dintre primele tale locuri de muncă ca nou programator va fi să înveți multe „cuvinte” și simboluri ale limbajului de programare C, limbajul pe care compilatorul tău îl înțelege. Odată ce ai învățat semnificația care stă la baza codului, vei putea să „vorbești” cu compilatorul și să-i dai propriile comenzi și să construiești orice fel de program pe care ești suficient de inventiv și de inventiv să îl creezi.

Dar reține că cunoașterea semnificațiilor simbolurilor arcane nu este tot ceea ce înseamnă programare. Nu poți stăpâni o altă limbă citind un dicționar de traduceri. Pentru a deveni fluent în altă limbă, trebuie să exersezi conversația în acea limbă. Învățarea unui limbaj de programare nu este diferit. Trebuie să exersezi „vorbirea” cu compilatorul cu codul sursă pe care îl scrii. Așa că asigură-te că introduci exemplul de cod de mai sus și nu eziți să experimentezi și să îl modifici cu curiozitatea ta de ghid.

OK, deci haideți să începem și să ne uităm la prima linie din programul nostru:

#include <stdio.h>

Înainte de a înțelege ce face această linie, trebuie să știi că mașina ta vine deja preinstalată cu un cod software C. Codul este acolo pentru a te salva de greșeala scrisului de cod care îndeplinește sarcini de bază, obișnuite. Acest cod reutilizabil este denumit bibliotecă. Și astfel, prima noastră linie din programul nostru exemplu semnalează compilatorului că am dori să „verificăm” ceva cod din bibliotecă și să-l folosim în programul nostru. Aici, împrumutăm codul care ne va ajuta să imprimăm textul pe ecran.

Modul în care îi spunem compilatorului C să includă codul bibliotecii în propriul nostru cod este prin folosirea a ceea ce se numește o directivă de preprocesor. Una dintre primele sarcini pe care le va efectua compilatorul tău este să caute prin codul sursă directivele preprocesorului care îți modifică într-un fel codul sursă. În cazul nostru, directiva preprocesor #include
îi spune compilatorului să copieze codul sursă dintr-o bibliotecă și să îl introducă direct în codul în care se găsește directiva preprocesor. Deoarece directiva noastră se află în partea de sus a fișierului, codul bibliotecii va fi inserat în partea de sus a fișierului sursă. (Reține că toate acestea se întâmplă în memoria computerului, astfel încât fișierul original de pe disc nu este niciodată modificat.)

Dar ce cod de bibliotecă ar trebui să introducă compilatorul? Următorul bit din linie, <stdio.h>, îi spune compilatorului să copieze și să lipească codul C din fișierul stdio.h în codul tău. Parantezele unghiulare care înconjoară numele fișierului îi spun compilatorului să caute fișierul în biblioteca standard, spre deosebire de propria bibliotecă personală de cod reutilizabil. Reține că fișierele cu extensia .h sunt numite fișiere antet. Fișierul antet stdio.h conține multe funcții legate de intrare și ieșire care sunt definite conform standardului C. Deși acest fișier antet ne oferă acces la multe funcții diferite, singura funcție de bibliotecă de interes de la stdio.h este funcția printf .

OK, dar ce este, mai exact, o funcție? Să aruncăm o privire la următoarea linie din codul nostru, astfel încât să începem să ne facem o idee:

int main(void)

Aici creăm o funcție numită main care este punctul de plecare pentru toate programele C. Toate programele C necesită o funcție numită „main” sau nu se vor compila. Numele funcției noastre este înconjurat de două simboluri misterioase, int și (void). Bitul „int” îi spune compilatorului ce fel de valoare va returna funcția noastră, în timp ce bitul „(void)” îi spune compilatorului nostru ce fel de valori vom „trece” în funcția noastră. Vom sări peste ce înseamnă exact acest lucru pentru moment, deoarece aceste valori vor fi tratate mai detaliat mai târziu în ghid. Cel mai important lucru de înțeles acum este că împreună, aceste simboluri declară funcția noastră compilatorului și îi spun că există.

Deci, ce este o funcție? În informatică, termenul „funcție” este folosit mai puțin decât în ​​matematică, deoarece funcțiile exprimă adesea idei imperative (ca în cazul lui C) – adică cum se procesează, în loc de declarații. Deocamdată, este suficient să spunem, funcțiile definesc un set de instrucțiuni de computer care lucrează împreună pentru a îndeplini o anumită sarcină. În C, instrucțiunile asociate cu o funcție sunt plasate între un set de acolade,
{ }
, care marchează începutul și sfârșitul instrucțiunilor. Împreună, acoladele și declarațiile se numesc bloc. Să aruncăm o privire la prima linie din blocul funcției noastre:

    printf("Hello World!\n");

Această linie de cod este inima programului nostru, cea care trimite salutul nostru către consola utilizatorului (cunoscut și ca terminal în contextul sistemelor de operare asemănătoare Unix), interfața bazată pe text instalată pe computerul tău. Această instrucțiune este un apel de funcție și are două părți principale: numele funcției de bibliotecă folosită pentru a tipări salutul nostru, printf, urmat de datele pe care le vom transmite funcției, văzute aici între perechea de paranteze. Datele pe care le transmitem funcției sunt șirul „Hello World!\n”. Partea „\n” de la sfârșitul șirului este un tip special de caracter numit secvență de evadare. Secvența de evadare „\n” generează noua linie la sfârșitul textului nostru. Șirurile și secvențele de evacuare vor fi tratate mai detaliat mai târziu. Terminăm instrucțiunea de apelare a funcției cu un punct și virgulă, astfel încât compilatorul să știe că ar trebui să înceapă să caute o instrucțiune nouă pe care o găsește pe linia următoare:

    return 0;

Aici, spunem că funcția noastră main returnează o valoare întreagă folosind cuvântul cheie return . Valoarea întreagă pe care o returnăm este „0”. Dar ce înseamnă asta, mai exact? În contextul specific al funcției main , valoarea pe care o returnăm se numește stare de ieșire, pe care o raportăm sistemului de operare pentru a indica dacă codul nostru a rulat fără eroare. Pe măsură ce programele noastre cresc în complexitate, putem folosi alte numere întregi drept coduri pentru a indica diferite tipuri de erori. Acest stil de furnizare a statutului de ieșire este o convenție bine stabilită [1]. Vom intra în mult mai multe detalii despre valorile returnate ale funcțiilor mai târziu în ghid.

Deci este mult de lucrat, chiar și pentru un program atât de scurt. Să nu îți faci griji dacă nu înțelegi totul și să nu te preocupi să le memorezi. Nu înveți programarea prin memorare, înveți prin repetare și prin acțiune. Să memorezi toate notele simfoniei a 5-a a lui Beethoven nu te face să fii un pianist concertist, trebuie să te lucrezi la claviatură și să exersezi și să cânți!

În continuare, vom arăta cum să iei codul sursă pe care l-ai introdus și să îl transformi într-un fișier executabil cu compilatorul tău.

Compilarea

Compilarea este procesul pe care l-am folosit pentru a descrie traducerea comenzilor pe care le-ai dat compilatorului în codul sursă în limbajul mașinii care poate fi rulat de sistemul tău de operare și microprocesor. În acest fel, compilatorul tău C este un intermediar. Vorbești cu compilatorul într-o limbă pe care o înțelege, codul sursă C, iar compilatorul traduce sursa în codul mașinii pentru a economisi o mulțime de muncă minuțioasă și obositoare la scrierea codului de asamblare.

Dacă compilatorul găsește codul sursă confuz, va afișa o eroare împreună cu un mesaj pentru a te ajuta să remediezi codul sursă și să clarifici orice confuzie. Va trebui apoi să încerci să recompilezi codul și să repeți procesul până când se compilă fără eroare. Reține că codul care se compilează fără erori nu înseamnă că este lipsit de erori. Înseamnă doar că compilatorul înțelege instrucțiunile furnizate de codul sursă.

Asemănător cu Unix

Dacă utilizezi un sistem Unix, cum ar fi GNU/Linux, Mac OS X sau Solaris, probabil că va avea instalat GCC, altfel pe Linux îl poțți instala folosind managerul de pachete al distribuției tale. Deschide consola virtuală sau un emulator de terminal și introdu următoarele (asigură-te că directorul de lucru actual este cel care conține codul sursă):

gcc hello.c

În mod implicit, gcc va genera binarul nostru executabil cu numele a.out. Pentru a rula noul program generat, scrie:

./a.out

Ar trebui să vezi Hello, World! tipărit după ultima solicitare.

Pentru a vedea starea de ieșire a ultimului program pe care l-ai rulat, tastează comanda shell:

echo $?

Aceasta arată valoarea pe care funcția principală a returnat-o, care este 0 în exemplul de mai sus.

Există o mulțime de opțiuni pe care le poți utiliza cu compilatorul gcc. De exemplu, dacă dorești ca rezultatul să aibă un alt nume decât a.out, poți utiliza opțiunea -o. Următoarele arată câteva exemple:

-o
indică faptul că următorul parametru este numele programului (sau bibliotecii) rezultat. Dacă această opțiune nu este specificată, programul compilat va ajunge, din motive istorice, într-un fișier numit „a.out” sau „a.exe” (pentru utilizatorii cygwin).
-Wall
indică faptul că gcc ar trebui să avertizeze cu privire la multe tipuri de coduri suspecte care pot fi incorecte.

Poți folosi aceste opțiuni pentru a crea un program numit „helloworld” în loc de „a.out”, tastând:

gcc -o helloworld hello.c -Wall

Acum îl poți rula tastând:

./helloworld

Toate opțiunile sunt bine documentate în manualul [2] pentru GCC.

Pe IDE-uri

Dacă utilizezi un IDE, poate fi necesar să selectezi proiectul consolei, iar pentru compilare trebuie doar să selectezi construirea din meniu sau din bara de instrumente. Executabilul va apărea în folderul proiectului, dar ar trebui să ai un buton de meniu, astfel încât să poți rula executabilul din IDE. Procesul este aproximativ același pe toate IDE-urile.

Referințe

  1. https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
  2. https://gcc.gnu.org/onlinedocs/

(Traducere și adaptare din Wikibooks de Nicolae Sfetcu)

Lucrul cu baze de date
Lucrul cu baze de date

Colecția ȘTIINȚA INFORMAȚIEI Lucrul cu bazele de date este astăzi printre cele mai căutate abilități IT. Acum puteți obține o bază de plecare în proiectarea și implementarea bazelor de date cu o abordare practică, ușor de înțeles. ”Lucrul cu baze … Citeşte mai mult

Nu a fost votat $3.99$7.99 Selectează opțiunile
Ghid WordPress pentru începători
Ghid WordPress pentru începători

WordPress combină simplitatea pentru utilizatorii şi editori cu complexitate suportului software pentru dezvoltatori. Acest lucru îl face mai flexibil, fiind în acelaşi timp uşor de utilizat. Simplitatea sa face posibilă instalarea şi publicarea online rapid. Nimic nu ar trebui să … Citeşte mai mult

Nu a fost votat $2.99$4.77 Selectează opțiunile
Ghid pagini Facebook – Campanii de promovare pe Facebook
Ghid pagini Facebook – Campanii de promovare pe Facebook

Paginile Facebook sunt cea mai simplă modalitate de a dezvolta o afacere online. Sunt gratuite, relativ ușor de configurat, și foarte flexibile. Indiferent dacă vrei să vinzi un produs sau un serviciu, sau să promovezi o organizaţie, o idee sau … Citeşte mai mult

Nu a fost votat $3.99 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *