예제 프로그램Example Program

다음 C 소스 프로그램은 두 개의 소스 파일로 구성됩니다.The following C source program consists of two source files. 이 프로그램에서는 C 프로그램에서 가능한 다양한 선언 및 정의 중 몇 가지를 간략하게 보여 줍니다.It gives an overview of some of the various declarations and definitions possible in a C program. 이 설명서의 이후 섹션에서는 이러한 선언, 정의 및 초기화를 작성하는 방법과 staticextern 등의 C 키워드를 사용하는 방법을 설명합니다.Later sections in this book describe how to write these declarations, definitions, and initializations, and how to use C keywords such as static and extern. printf 함수는 C 헤더 파일 STDIO.H에서 선언됩니다.The printf function is declared in the C header file STDIO.H.

mainmax 함수는 별도의 파일에 있는 것으로 간주되며, 프로그램의 실행은 main 함수로 시작됩니다.The main and max functions are assumed to be in separate files, and execution of the program begins with the main function. main 전에는 명시적 사용자 함수가 실행되지 않습니다.No explicit user functions are executed before 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에는 max 함수에 대한 프로토타입이 포함되어 있습니다.FILE1.C contains the prototype for the max function. 함수가 사용되기 전에 선언되기 때문에 이러한 종류의 선언을 "정방향 선언"이라고 하기도 합니다.This kind of declaration is sometimes called a "forward declaration" because the function is declared before it is used. main 함수에 대한 정의에는 max에 대한 호출이 포함되어 있습니다.The definition for the main function includes calls to max.

#define으로 시작하는 줄은 전처리기 지시문입니다.The lines beginning with #define are preprocessor directives. 이러한 지시문은 FILE1.C 전반에서 ONE, TWOTHREE 식별자를 각각 숫자 1, 23으로 대체하도록 전처리기에 지시합니다.These directives tell the preprocessor to replace the identifiers ONE, TWO, and THREE with the numbers 1, 2, and 3, respectively, throughout FILE1.C. 하지만 지시문은 별도로 컴파일된 후 FILE1.C와 연결되는 FILE2.C에 적용되지 않습니다.However, the directives do not apply to FILE2.C, which is compiled separately and then linked with FILE1.C. #include로 시작되는 줄은 printf 함수의 프로토타입이 포함된 STDIO.H 파일을 포함하도록 컴파일러에 지시합니다.The line beginning with #include tells the compiler to include the file STDIO.H, which contains the prototype for the printf function. 전처리기 지시문전처리기 참조에 설명되어 있습니다.Preprocessor directives are explained in the Preprocessor Reference.

FILE1.C는 정의하는 선언을 사용하여 전역 변수 ab를 초기화합니다.FILE1.C uses defining declarations to initialize the global variables a and b. 지역 변수 cd는 선언되지만 초기화되지는 않습니다.The local variables c and d are declared but not initialized. 이러한 모든 변수에 대해 저장소가 할당됩니다.Storage is allocated for all these variables. 정적 및 외부 변수 uv는 자동으로 0으로 초기화됩니다.The static and external variables, u and v, are automatically initialized to 0. 따라서 a, b, uv만 선언될 때 명시적으로나 암시적으로 초기화되기 때문에 의미 있는 값을 포함합니다.Therefore only a, b, u, and v contain meaningful values when declared because they are initialized, either explicitly or implicitly. FILE2.C에는 max에 대한 함수 정의가 포함되어 있습니다.FILE2.C contains the function definition for max. 이 정의는 FILE1.C에서 max에 대한 호출을 충족시킵니다.This definition satisfies the calls to max in FILE1.C.

식별자의 수명 및 표시 유형은 수명, 범위, 표시 유형 및 링크에 설명되어 있습니다.The lifetime and visibility of identifiers are discussed in Lifetime, Scope, Visibility, and Linkage. 함수에 대한 자세한 내용은 함수를 참조하세요.For more information on functions, see Functions.

참고 항목See Also

원본 파일 및 원본 프로그램Source Files and Source Programs