start     Articole     Despre mine     Contact     Cursul ABCprog    

Care e structura generala a unui program in C

Iata ca am ajuns la a treia lectie de introducere in limbajul de programare C. (In caz ca te intrebi daca merita sa investesti energie in studierea acestui limbaj, te invit sa-mi citesti parerea din acest articol (click aici). Iar daca vrei sa vezi care sunt aspectele esentiale pe care ar trebui sa le studiezi referitor la limbajul C, click aici.)

Dupa ce data trecuta ti-am aratat cum poti face un program simplu in C folosind mediul de programare Code::Blocks, e timpul sa vorbim despre structura generala a unui program scris in limbajul C. Adica (mai pe romaneste) ce trebuie sa contina in el fisierul ala text (cu extensia “.c”) in care iti scrii programul.

In C lucrurile nu sunt chiar asa de simple ca in mini-limbajul de programare pe care l-am folosit in ghidul de initiere in programare de la zero de care vorbesc aici. Adica tot o insiruire de instructiuni este si un program in C, insa aceste “instructiuni” pot fi de mai multe feluri si au o anumita ordine in care trebuie sa apara in program.

 

In imaginea care urmeaza am incercat sa fac un fel de harta a unui program C oarecare.

In continuare o sa fac cateva remarci referitoare la aceasta structura generala a unui program C:

* Nu e 100% exacta, dar e clara si logica.

* Pentru claritatea programului e bine sa se pastreze organizarea asta, desi compilatorul permite amestecarea declaratiilor cu definitiile. Nu permite, insa, utilizarea in corpul unei definitii a vreunei entitati (ca sa nu zic “chestie”) care nu a fost definita mai sus de ea in fisier.

* Aproape toate elementele pot lipsi. Singurul care trebuie sa apara neaparat este “Definitia functiei main“. Acolo trebuie scrise, una dupa alta, instructiunile pe care ii cerem calculatorului sa le execute la rularea (adica la pornirea) programului. Aceasta functie o denumim si “programul principal“. Iar celelalte functii se mai numesc si “subprograme”.

 

In continuare, cateva remarci referitoare la structura generala a unei definitii de functie:

* Nu face obiectul acestei lectii, dar e necesara pentru a putea intelege cum trebuie scris programul principal (care in limbajul C e considerat ca fiind o functie numita “main”).

* Arata in felul urmator:

 

* In particular, pentru functia main antetul functiei nu poate avea prea multe forme:

** TipulValoriiReturnate poate fi:

*** void — ceea ce inseamna ca functia nu va returna nicio valoare. (O astfel de functie unii o numesc si “procedura” — caci este doar o secventa de instructiuni ce se cere a fi executate, si nu o secventa de calcule ce au ca scop obtinerea unei valori.)

*** int — ceea ce inseamna ca functia va returna (cu ajutorul unei instructiuni “return”) o valoare de tip numar intreg (adica un numar real, pozitiv sau negativ, fara zecimale).

** NumeleFunctiei poate fi doar “main” (fara ghilimele si neaparat doar cu litere mici). (De exemplu, compilatorul de C considera ca functia “Main” este o functie oarecare, cu totul diferita de functia “main”.)

** ListaDeParametriFormali poate fi:

*** “” (adica nimic (fara ghilimele)) — ceea ce inseamna ca functia va fi apelata fara parametri (adica apelul ei va fi ceva gen “f()”, si nu ceva gen “f(x)” sau “f(x, y, z)”.

*** “int argc, char *argv[]” — ceea ce inseamna ca la apelul functiei se va transmite ca prim parametru o valoare de tip numar intreg si un vector de adrese de siruri de caractere (din codul ASCII). Aceasta varianta permite construirea de programe carora sa li se poata transmite parametri (cum sunt majoritatea programelor ce pot fi folosite in terminalul de comenzi al sistemului de operare).

 

Ca exemplu concret, iata aici programul “Salutare, lume!” (pe care l-ai facut in lectia trecuta) “disecat” bucata cu bucata:

 

Daca nu avem nevoie sa returnam cod de eroare in urma executiei programului (asa cum este, de fapt, si cazul programului de fata, care la fiecare rulare va returna valoarea 0), atunci putem sa rescriem codul sursa al programului intr-o forma mai simpla asa:

#include <stdio.h>
void main()
{
    printf("Salutare, lumeee!");
}

 

Gata lectia. Poate ca ti se pare ca nu ai invatat prea multe lucruri practice din aceasta lectie, insa e foarte important sa deprinzi structura generala (sau “scheletul”) pe care se construieste orice program C.

Daca ai intrebari, scrie-le, te rog, intr-un comentariu mai jos.

 

Alatura-te celor peste 6200 de oameni din armata noastra de creiere cu muschi si vei primi testul care iti va spune daca ai sau nu minte de programator.

In plus, vei fi mereu la curent cu tot ce pun la cale.

(Nu trimit spam; email-ul tau e in siguranta.)

 

Cu drag,

Florin Bîrleanu





Loading Facebook Comments ...