Programma di esempio
Il seguente programma di origine C è costituito da due file di origine. Viene fornita una panoramica di alcune delle varie dichiarazioni e definizioni possibili in un programma C. Le sezioni successive di questo libro descrivono come scrivere queste dichiarazioni, definizioni e inizialiizzazioni e come usare parole chiave C, ad esempio static
e extern
. La funzione printf
viene dichiarata nel file di intestazione C STDIO.H.
Si presume che le funzioni main
e max
siano in file separati e l'esecuzione del programma inizia con la funzione main
. Nessuna funzione esplicita dell'utente viene eseguita prima di main
.
/*****************************************************************
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 contiene il prototipo della funzione max
. Questo tipo di dichiarazione viene talvolta chiamata una "dichiarazione con prototipo" perché la funzione viene dichiarata prima di essere utilizzata. La definizione della funzione main
include chiamate a max
.
Le righe che iniziano con #define
sono direttive per il preprocessore. Queste direttive indicano al preprocessore di sostituire gli identificatori ONE
, TWO
e THREE
con i numeri 1
, 2
e 3
, rispettivamente, in FILE1.C. Tuttavia, le direttive non si applicano a FILE2.C che viene compilata separatamente, quindi collegata a FILE1.C. La riga che inizia con #include
indica al compilatore di includere il file STDIO.H che contiene il prototipo della funzione printf
. Le direttive per il preprocessore vengono spiegate in Riferimenti al preprocessore.
FILE1.C utilizza dichiarazioni di definizione per inizializzare le variabili globali a
e b
. Le variabili locali c
e d
vengono dichiarate ma non vengono inizializzate. Lo spazio di archiviazione viene allocato per tutte queste variabili. Le variabili statiche ed esterne, u
e v
, vengono inizializzate automaticamente a 0. Di conseguenza, solo a
, b
, u
e v
contengono valori significativi una volta dichiarati, in quanto vengono inizializzati in modo esplicito o implicito. FILE2.C contiene la definizione di funzione per max
. Questa definizione soddisfa le chiamate a max
in FILE1.C.
La durata e la visibilità degli identificatori vengono illustrate in Durata, ambito, visibilità e collegamento. Per altre informazioni sulle funzioni, vedere Funzioni.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per