Programa de exemplo

O seguinte programa de origem C consiste em dois arquivos de origem. Ele dá uma visão geral de algumas das várias declarações e definições possíveis em um programa C. As seções posteriores deste livro descrevem como escrever essas declarações, definições e inicializações e como usar palavras-chave C como static e extern. A printf função é declarada no arquivo de cabeçalho C STDIO.H.

As main funções e max são assumidas para estar em arquivos separados, e a execução do programa começa com a main função. Nenhuma função de usuário explícita é executada antes do 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 );
}

ARQUIVO1. C contém o protótipo da max função. Esse tipo de declaração às vezes é chamado de "declaração de encaminhamento" porque a função é declarada antes de ser usada. A definição para a main função inclui chamadas para max.

As linhas que começam com #define são diretivas de pré-processador. Essas diretivas dizem ao pré-processador para substituir os identificadores ONE, TWOe THREE com os números 1, 2e , e 3, respectivamente, em todo o FILE1.C. No entanto, as diretivas não se aplicam ao FILE2. C, que é compilado separadamente e, em seguida, vinculado com FILE1.C. A linha que começa com #include diz ao compilador para incluir o arquivo STDIO. H, que contém o protótipo para a printf função. As diretivas do pré-processador são explicadas na Referência do pré-processador.

ARQUIVO1. C usa a definição de declarações para inicializar as variáveis a globais e b. As variáveis c locais e d são declaradas, mas não inicializadas. O armazenamento é alocado para todas essas variáveis. As variáveis estáticas e externas, u e v, são automaticamente inicializadas como 0. Portanto, apenas a, b, u, e v contêm valores significativos quando declarados porque são inicializados, explícita ou implicitamente. FICHEIRO2. C contém a definição de função para max. Esta definição satisfaz as chamadas para max em FILE1.C.

O tempo de vida e a visibilidade dos identificadores são discutidos em Tempo de vida, Escopo, Visibilidade e Vinculação. Para obter mais informações sobre funções, consulte Funções.

Ver também

Arquivos de origem e programas de origem