I C-programmering Vad är skillnaden mellan deklaration och definition av en variabel / funktion?


Svar 1:

En deklaration berättar vad variabeln / funktionen är. En definition berättar hur variabeln / funktionen fungerar. Med C måste du antingen förklara eller definiera en variabel / funktion innan du använder den. Om du bara förklarar funktionen så kan du kompilera programmet men kan inte bygga programmet förrän de definieras i antingen din kod eller ett bibliotek.


Svar 2:

En deklaration förklarar att saken (variabel / funktion) finns NÅGON, och innehåller åtminstone en del av typinformationen om det. Deklarationen för en matris kanske inte ger sin längd. En deklaration för en funktion kanske inte innehåller en prototyp för att definiera parametrarna den tar. Förklaringen för en struktur / fackförening / enum kanske inte definierar sina medlemmar.

Definitionen för dessa saker säger inte bara att saken finns, utan ger alla nödvändiga detaljer där.


Svar 3:

Frågan är "I C-programmering. Vad är skillnaden mellan deklaration och definition av en variabel / funktion?"

En deklaration anger namnet och typen av en variabel (eller funktion.)

En definition tilldelar lagring för det.

Ibland gör samma uttalande båda - till exempel "statiska" deklarationer av variabler i ett sammanställningsområde, eller automatiska (eller statiska) variabler inom ramen för en funktion.

Ibland indikerar en "extern" -kvalificering på en variabel eller en prototypprototyp en deklaration, med definitionen i ett annat sammanställningsområde.


Svar 4:

Förklaring: ska finnas i en huvudfil: säger att jag ska göra en funktion som returnerar en viss typ, har det här namnet och tar dessa argument.

Definition: ska finnas i en C-källfil: upprepar definitionen av funktionen men följs inte av en semikolon. Istället följs det av en öppen stång {och mellan den och den nära stängningen} är källkodsatserna som implementerar funktionen.


Svar 5:

Förklaring: ska finnas i en huvudfil: säger att jag ska göra en funktion som returnerar en viss typ, har det här namnet och tar dessa argument.

Definition: ska finnas i en C-källfil: upprepar definitionen av funktionen men följs inte av en semikolon. Istället följs det av en öppen stång {och mellan den och den nära stängningen} är källkodsatserna som implementerar funktionen.


Svar 6:

Förklaring: ska finnas i en huvudfil: säger att jag ska göra en funktion som returnerar en viss typ, har det här namnet och tar dessa argument.

Definition: ska finnas i en C-källfil: upprepar definitionen av funktionen men följs inte av en semikolon. Istället följs det av en öppen stång {och mellan den och den nära stängningen} är källkodsatserna som implementerar funktionen.