I C-programmering Hvad er forskellen mellem deklaration og definition af en variabel / funktion?


Svar 1:

En erklæring fortæller, hvad variablen / funktionen er. En definition fortæller, hvordan variablen / funktionen fungerer. Med C skal du enten erklære eller definere en variabel / funktion, før du bruger den. Hvis du bare erklærer funktionen, kan du kompilere programmet, men kan ikke bygge programmet, før de er defineret i enten din kode eller et bibliotek.


Svar 2:

En erklæring erklærer, at tinget (variabel / funktion) findes SOMMELT og indeholder mindst nogle af typeoplysningerne om det. Erklæringen for en matrix giver måske ikke dens længde. En erklæring til en funktion indeholder muligvis ikke en prototype til at definere de parametre, den tager. Erklæringen for en struktur / fagforening / enum definerer muligvis ikke sine medlemmer.

Definitionen for disse ting siger ikke kun, at den findes, men giver alle de nødvendige detaljer lige der.


Svar 3:

Spørgsmålet er "I C-programmering. Hvad er forskellen mellem deklaration og definition af en variabel / funktion?"

En erklæring angiver navnet og typen af ​​en variabel (eller funktion).

En definition tildeler lagring til det.

Nogle gange gør den samme udsagn begge - såsom “statiske” erklæringer af variabler i et samlingsomfang eller automatiske (eller statiske) variabler inden for en funktions omfang.

Nogle gange vil en "ekstern" -kvalifikator på en variabel eller en prototype indikere en erklæring med definitionen angivet i et andet kompilationsomfang.


Svar 4:

Erklæring: skal være i en headerfil: siger, at jeg vil lave en funktion, der returnerer en bestemt type, har dette navn og tager disse argumenter.

Definition: skal være i en C-kildefil: gentager definitionen af ​​funktionen, men følges ikke af en semikolon. I stedet følges det af en åben søjle {og ​​mellem den og den nære bøjle} er kildekodesætningerne, der implementerer funktionen.


Svar 5:

Erklæring: skal være i en headerfil: siger, at jeg vil lave en funktion, der returnerer en bestemt type, har dette navn og tager disse argumenter.

Definition: skal være i en C-kildefil: gentager definitionen af ​​funktionen, men følges ikke af en semikolon. I stedet følges det af en åben søjle {og ​​mellem den og den nære bøjle} er kildekodesætningerne, der implementerer funktionen.


Svar 6:

Erklæring: skal være i en headerfil: siger, at jeg vil lave en funktion, der returnerer en bestemt type, har dette navn og tager disse argumenter.

Definition: skal være i en C-kildefil: gentager definitionen af ​​funktionen, men følges ikke af en semikolon. I stedet følges det af en åben søjle {og ​​mellem den og den nære bøjle} er kildekodesætningerne, der implementerer funktionen.