En termes senzills, per als novells, quina diferència hi ha entre “declaració” i “definició” en C?


Resposta 1:

En context del llenguatge C, la declaració es refereix a dir al compilador el nom, el tipus i la signatura de funcions o mètodes.

Per exemple:

/ * Declaració del funtiom * /
 FooBar (Llista d’arguments amb tipus de dades);

Aquí podem veure que acaba amb un punt i coma, i és un codi de línia únic, que només indica el nom del compilador, l’argument i el tipus de retorn d’una funció.

Mentre que, Definició consisteix a definir el contingut (cos) real d'aquesta funció. Inclou tots els codis i lògiques i tot, que descriu quina funció realment fa.

Per exemple:

/ * Funció de definició * /
 FooBar (llista d’arguments amb tipus de dades)
{
  / * Declaració de variable local * /
  / *
   Línies de codi que contenen la lògica del programa real
  * /
   tornar ;
}

En C, cal que es faci una declaració abans que s’utilitzi aquesta funció, de manera que el compilador no llança cap error, on la definició de la funció podria estar en qualsevol lloc de l’àmbit actual del programa.

Gràcies


Resposta 2:

Una declaració informa al compilador amb antelació del tipus, mida de la variable i sobre els paràmetres, tipus de retorn de la funció.

No es produeix l'assignació de memòria durant la declaració.

ex: int j;

Definició: “defineix” què fa aquella variable / funció, quin valor assumirà. L'assignació de memòria real passa després de la definició.

ex: j = 3;


Resposta 3:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 4:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 5:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 6:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 7:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 8:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}

Resposta 9:

Una declaració només és: és el que heu de dir al compilador que esperi trobar la definició més endavant al codi font. Normalment es troba en un fitxer de capçalera (extensió .h o .hpp) i normalment la definició font (c, o extensió cpp). L’objectiu de la declaració és permetre a un programador que estigui utilitzant la funció o classe que declareu que pugui utilitzar la funció o classe: no necessiten la definició, ja que és el codi font que indica al compilador com fer què la funció / classe hauria de fer, però la declaració els indica què retorna la funció, quins arguments porta la funció i el nom de la funció perquè puguin trucar a la funció des del seu codi. Si fins ara no estava clar, la definició té el codi font per definir (d’aquí la paraula “definició”) la funció. Aquí trobem un exemple:

// declaració
int doSomething (int x, int y);

// definició
int doSomething (int x, int y)
{
retorn (x * y);
}