Informatică, întrebare adresată de andreeadima934, 8 ani în urmă

hey !! va rog daca stie cineva ,eu am cautat pe net dar nu prea am inteles exact ....stie cineva ce inseamna comanda #define in c++ dar explicata intr un mod cat mai simplu ca sa pot intelege !! Multumesc !

Răspunsuri la întrebare

Răspuns de andrei750238
5

Instructiunea define e o directiva precompilator folosita pentru mai multe lucruri. Structura este in felul urmator :

#define <nume_simbolic> <valoare>

Practic inainte ca programul sa fie compilat, precompilatorul se duce si oriunde gaseste <nume_simbolic> in cod il inlocuieste cu <valoare>.

►Spre exemplu:

#define numar_elemente 1000

.....

int main(){

   int vector[numar_elemente];

}

► Explicatie :

Inainte de compilare, numar_elemente se inlocuieste cu 1000. Apoi se compileaza. E fix acelasi lucru ca si cand am pune "int vector[1000]". Dar folosim define, in cazul in care avem mai multi vectori cu aceasi dimensiune sa schimbam usor programul.

Nu putem sa folosim int numar_elemente = 1000, pentru ca compilatorul nu e sigur ca aceasta versiune se va modifica la rulare si trebuie sa stie dinainte ce dimensiune trebuie sa avem pentru vector. Cu define nu avem aceasta problema, pentru ca se inlocuieste efectiv textul in cod.

Putem folosi define pentru a redenumi instuctiuni, si asa putem sa scriem cod c++ in romana:

#include <iostream>

using namespace std;

#define afiseaza cout

#define citeste cin

#define intreg int

#define egal =

intreg main()

{

intreg x;

citeste >> x;

x egal x + 5;

afiseaza << "Valoare lui x este acum " << x;

}

Inainte de compilare intreg se inlocuieste cu int, citeste se inlocuieste cu cin, egal se inlocuieste cu =, afiseaza se inlocuieste cu cout.

Pur si simplu se inlocuieste prima parte cu valoarea din a doua parte, apoi se compileaza normal. Nu e nimic dificil.

#define poate fi folosit si pentru a crea macrouri (un fel de functii, dar care ar trebui sa functioneze pe toate tipurile de date), precum si pentru unele instructiuni preprocesor mai complexe (cand scriem cod in mai multe fisiere va trebui sa folosim declare pentru a ne asigura ca nu includem un fisier header de mai multe ori), dar aceste lucruri sunt putin mai avansate si sunt discutate mai pe larg la facultate.

Ti-am raspuns la intrebare ?


VxF: Tare exemplul cu C++ în română. Ar fi de evidenţiat că cel care face înlocuirile se numește „C Preprocessor”, ca cei interesaţi să poată găsii mai multe informaţii pe web. Sau man cpp.
Alte întrebări interesante