Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující zdrojová aplikace jazyka C se skládá ze dvou zdrojových souborů. Poskytuje přehled o různých deklaracích a definicích, které je možné v aplikaci jazyka C použít. Další části této knihy popisují, jak psát tyto deklarace, definice a inicializace a jak používat klíčová slova jazyka C, jako static jsou a extern. Funkce printf je deklarována v souboru záhlaví STDIO.H jazyka C.
Funkce main a max jsou považovány za umístěné v samostatných souborech a provádění aplikace začíná funkcí main. Před funkcí main nejsou spuštěny žádné explicitní uživatelské funkce.
/*****************************************************************
FILE1.C - main function
*****************************************************************/
#define ONE 1
#define TWO 2
#define THREE 3
#include <stdio.h>
int a = 1; // Defining declarations
int b = 2; // of external variables
extern int max( int a, int b ); // Function prototype
int main() // Function definition
{ // for main function
int c; // Definitions for
int d; // two uninitialized
// local variables
extern int u; // Referencing declaration
// of external variable
// defined elsewhere
static int v; // Definition of variable
// with continuous lifetime
int w = ONE, x = TWO, y = THREE;
int z = 0;
z = max( x, y ); // Executable statements
w = max( z, w );
printf_s( "%d %d\n", z, w );
return 0;
}
/****************************************************************
FILE2.C - definition of max function
****************************************************************/
int max( int a, int b ) // Note formal parameters are
// included in function header
{
if( a > b )
return( a );
else
return( b );
}
FILE1.C obsahuje prototyp funkce max. Tento druh deklarace se někdy nazývá „dopředná deklarace“, protože funkce je deklarována před jejím použitím. Definice funkce main zahrnuje volání funkce max.
Řádky začínající #define jsou direktivy preprocesoru. Tyto direktivy sdělují preprocesoru, že má nahradit identifikátory ONE, TWO a THREE v celém souboru FILE1.C čísly 1, 2 a 3. Direktivy se však nevztahují na soubor FILE2.C, který je kompilován samostatně a následně připojen k souboru FILE1.C. Řádek začínající příkazem #include sděluje kompilátoru, že je třeba zahrnout soubor STDIO.H, který obsahuje prototyp funkce printf.
Direktivy preprocesoru jsou vysvětleny v referenčních informacích preprocesoru.
FILE1.C používá pro inicializaci globálních proměnných a a b definující deklarace. Místní proměnné c a d jsou deklarovány, ale nejsou inicializovány. Úložiště je alokováno pro všechny tyto proměnné. Statické i externí proměnné u a v jsou automaticky inicializovány na hodnotu 0. Proto pouze a, b, u a v obsahují při deklaraci smysluplné hodnoty, protože jsou inicializovány explicitně nebo implicitně. FILE2.C obsahuje definici funkce max. Tato definice obsluhuje volání max v souboru FILE1.C.
Životnost a viditelnost identifikátorů jsou popsány v oblasti životnosti, rozsahu, viditelnosti a propojení. Další informace o funkcích najdete v tématu Funkce.