Enkelt uttryckt, för nybörjare, vad är skillnaden mellan "deklaration" och "definition" i C?


Svar 1:

I samband med C-språk hänvisar deklarationen till att berätta kompilatorns namn, typ och signatur för funktioner eller metoder.

T.ex:

/ * Förklarande funktion * /
 FooBar (Argumentlista med datatyp);

Vi kan här se att det slutar med en semikolon och är en enda radkod, som bara berättar kompilatorens namn, argument och returtyp för en funktion.

Definition handlar om att definiera det faktiska innehållet (kroppen) i den funktionen. Som inkluderar alla koder och logiker och allt, som beskriver vilken funktion som faktiskt gör.

T.ex:

/ * Definiera funktion * /
 FooBar (Argumentlista med datatyp)
{
  / * Lokal variabeldeklaration * /
  / *
   Kodlinjer som innehåller faktisk programlogik
  * /
   returnera ;
}

I C måste deklaration göras för att den funktionen används, så att kompilatorn inte kastar ett fel, där funktionsdefinition kan vara någonstans i programmets nuvarande räckvidd.

Tack


Svar 2:

En deklaration informerar kompilatorn i förväg om typ, variabelns storlek och om parametrarna, funktionens returtyp.

Ingen minnesallokering sker under deklarationen.

ex: int j;

Definition: Den "definierar" vad den variabeln / funktionen gör, vilket värde kommer den att ha. Faktisk minnesallokering sker efter definitionen.

ex: j = 3;


Svar 3:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 4:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 5:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 6:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 7:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 8:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}

Svar 9:

En deklaration är just det - den är där för att säga kompilatorn att förvänta sig att hitta definitionen senare i källkoden. Det är vanligtvis i en rubrikfil (.h eller .hpp-förlängning) och källan (c eller cpp-förlängning) har vanligtvis definitionen. Syftet med deklarationen är att tillåta en programmerare som använder funktionen eller klassen du förklarar att kunna använda funktionen eller klassen - de behöver inte definitionen eftersom det är källkoden som säger kompilatorn hur man faktiskt gör vad funktionen / klassen borde göra men deklarationen berättar för dem vad funktionen returnerar, vilka argument funktionen tar och namnet på funktionen så att de senare kan ringa funktionen från sin kod. Om det inte var klart hittills har definitionen källkoden att definiera (därav ordet "definition") funktionen. Ett exempel på båda är här:

//deklaration
int doSomething (int x, int y);

//definition
int doSomething (int x, int y)
{
retur (x * y);
}