Zjednodušeně řečeno, jaký je rozdíl mezi „deklarací“ a „definicí“ pro nováčky v C?


Odpověď 1:

V kontextu jazyka C se Deklarace týká kompilátoru, který říká jméno, typ a podpis funkcí nebo metod.

Např:

/ * Prohlášení funkce * /
 FooBar (Seznam argumentů s datovým typem);

Zde vidíme, že končí středníkem a jedná se o jednobodový kód, který pouze řekne jméno kompilátoru, argument a návratový typ funkce.

Definice je o definování skutečného obsahu (těla) této funkce. Což zahrnuje všechny kódy a logiku a vše, co popisuje, jaká funkce ve skutečnosti funguje.

Např:

/ * Definování funkce * /
 FooBar (seznam argumentů s datovým typem)
{
  / * Prohlášení o lokální proměnné * /
  / *
   Řádky kódu obsahující skutečnou logiku programu
  * /
   return ;
}

V C je třeba provést deklaraci, aby byla použita tato funkce, takže kompilátor nevyvolá chybu, kde by definice funkce mohla být kdekoli v aktuálním rozsahu programu.

Děkuji


Odpověď 2:

Deklarace informuje kompilátor předem o typu, velikosti proměnné ao parametrech, typu vrácení funkce.

Během deklarace nedochází k žádnému přidělení paměti.

ex: int j;

Definice: „Definuje“, co daná proměnná / funkce dělá, jakou hodnotu přijme. Skutečné přidělení paměti nastane po definici.

ex: j = 3;


Odpověď 3:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 4:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 5:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 6:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 7:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 8:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}

Odpověď 9:

Prohlášení je jen to, že kompilátoru je řečeno, že očekává, že najde definici později ve zdrojovém kódu. Obvykle se jedná o soubor záhlaví (přípona .h nebo .hpp) a zdroj (přípona c nebo cpp) bude mít definici obvykle. Účelem deklarace je umožnit programátorovi, který používá funkci nebo třídu, kterou deklarujete, aby mohli tuto funkci nebo třídu používat - nepotřebují definici, protože to je zdrojový kód, který kompilátoru říká, jak skutečně dělat, co funkce / třída by měla dělat, ale deklarace jim řekne, co funkce vrací, jaké argumenty funkce bere a název funkce, aby mohli později funkci volat z jejich kódu. Pokud to dosud nebylo jasné, má definice zdrojový kód pro definování funkce (tedy slovo „definice“). Příklad obou je zde:

//prohlášení
int doSomething (int x, int y);

//definice
int doSomething (int x, int y)
{
návrat (x * y);
}