C언어 : 2. 첫 프로그램으로 보는 구조

2026. 5. 18. 09:57·C/Study

안녕하세요.

이번에는 이전 포스팅에서 컴파일 해본 C 언어 프로그램 소스코드 예제를 가지고 분석할 예정입니다.

해당 예제는 Ch02 의 first.c 입니다.

1. 소스코드 예제

// first.c
#include <stdio.h>
int main(void)                /* a simple program             */
{
    int num;                  /* define a variable called num */
    num = 1;                  /* assign a value to num        */
    
    printf("I am a simple "); /* use the printf() function    */
    printf("computer.\n");
    printf("My favorite number is %d because it is first.\n",num);
    
    return 0;
}

> 먼저 개괄 분석을 하겠습니다.

  • #include <stdio.h> ~ : 전처리기 지시자
  • int main(void) : 메인 함수
  • /* ~ */ : 주석
  • { ~ } : 함수 블록
  • int num : 변수 선언문
  • num = 1 : 변수 대입문
  • printf() : 함수 호출문
  • return 0 : 함수 반환문
  • ; : 세미콜론

2. 전처리기 지시자 : #include<stdio.h>

 1) 의미

  • 전처리기 지시자
  • 해당 라인에 stdio.h 파일 전체 내용을 붙여넣기한 것과 같은 효과를 가져옵니다.

 2) stdio.h(standard input / output header)

  • stdio.h 파일은 모든 C 컴파일러 패키지 일부로 제공됩니다.
  • 해당 예제에서 사용하는 printf() 함수인 출력 함수에 대한 정보를 가지고 있습니다.
  • 뿐만 아니라 입력함수에 대한 정보도 가지고 있습니다.

 3) 헤더 파일

  • 헤더 파일이란 사용할 함수들의 정보를 담고 있는 파일입니다.
  • 실제 함수 작동은 컴파일러의 링커 부분이 라이브러리 코드를 가져왔을 때 이루어집니다.

3. 메인 함수 : int main(void)

 1) 의미

  • C 언어 프로그램의 첫 시작을 담당하는 함수

 2) 반환형(int)

  • 현재 함수의 반환형 정보는 int 입니다. int 는 정수형을 의미합니다.(int 에 대한 내용은 자료형에서 깊게 알 수 있습니다.)

 3) 전달정보(void)

  • 현재 함수의 전달되는 정보는 void 입니다. void 는 비어있는 형태를 의미합니다.
  • void 는 생략이 가능합니다.

4. 주석 : /* ~ */

 1) 의미

  • 주석이란 소스코드를 보는 개발자에게 정보를 나타나기 위한 일종의 메시지다.
  • 컴파일러는 주석을 무시하고 컴파일 합니다.

 2) 표현방법

  • /* ~ */ : 이 방법은 두 줄을 넘어가는 경우(주석처리 할 코드가 긴 경우)에 많이 사용합니다.
/* 이것이 바로 주석입니다. */
  • // : 이 방법은 한 줄 만을 주석처리 할 경우 자주 사용합니다.
// 이렇게도 주석을 붙일 수 있습니다.

5. 함수 블록 : {~} 

 1) 의미

  • 함수의 경계를 구분합니다.
  • 함수의 필수요소로써 반드시 들어가야 합니다.

6. 변수 선언문 : int num

 1) 의미

  • 데이터형이 int(정수형) 이고, 이름이 num 인 변수를 선언합니다.

 2) 키워드

  • int 는 C 의 기본 데이터형 중 하나임을 알리는 키워드입니다.
  • 이러한 키워드들은 변수의 이름이 될 수 없습니다.
  • int(정수형) 뿐만 아니라 char(문자), float/double(부동소수점 수) 와 같은 데이터형도 존재합니다.

 3) 변수명

  • 변수명은 일종의 식별자 입니다.
  • 식별자는 컴퓨터 메모리 상 특정 위치에 연결하는 역할을 합니다.

 3.1) 변수명 규칙

  • 키워드 명을 사용할 수 없습니다.
  • 길이 제한은 없습니다.
  • 대문자와 소문자를 구분합니다.
  • 숫자는 사용 가능하지만 첫 문자로 올 수 없습니다.
  • 특수문자는 _(밑줄) 만 가능합니다.
  • 공백은 사용 불가합니다.
  • _ 로 첫 문자를 시작하는 변수명은 가급적 사용하지 않습니다.(C 라이브러리 변수명과 충돌을 일으킬 수 있습니다.)
int winner // (o)
int $%[** // (x) 허용되지 않는 특수문자

int cat2 // (o)
int 2cat // (x) 숫자는 첫 문자 불가

int Cool_Num // (o)
int Cool-Num // (x) 허용되지 않는 특수문자

int TaxRate // (o)
int Tax Rate // (x) 공백 불가

int _kPop // (o)
int I'am // (x) 허용되지 않는 특수문자

7. 변수 대입문 : num = 1

 1) 의미

  • 변수 num 에 값 1을 대입하라는 의미입니다.
  • 변수 선언문에서 num 이라는 변수에 공간을 할당하고, 대입문에서 값을 저장합니다.
  • 변수는 항상 오른쪽에서 왼쪽으로 값을 대입합니다.

8. 함수 호출문 : printf()

 1) 의미

  • 함수를 호출합니다.
  • 해당 함수에만 국한되는 것이 아니라 앞으로 여러 함수들을 호출할 수 있습니다.

 2) 함수호출(제어권 양도)

  • 해당 줄 진입 시 printf() 라는 함수를 호출(call) 합니다.
  • main() 에서 printf() 에게 프로그램 제어권이 양도됩니다.(넘어갑니다.)

 3) 전달인자(=매개변수)

printf("I am a simple ");
  • 함수에 "I am ~ simple " 과 같은 문자열을 전달인자로 사용하였습니다.

 4) 함수실행

  • 정의된 함수의 실제 동작이 실행됩니다.

 5) 함수반환(제어권 반환)

  • printf() 에서 main() 에게 프로그램 제어가 반환됩니다.(넘어갑니다.)

9. 함수 반환문 : return 0

 1) 의미

  • 함수의 마지막 문장입니다.

 2) 반환형

  • main() 의 반환형은 int(정수형) 이라고 했습니다.
  • return 시에는 반환형에 맞는 값을 반환해주어야 합니다.
  • 따라서 0 이라는 정수를 반환하면서 main() 은 종료됩니다.

10. 세미콜론 : ;

 1) 의미

  • 문장의 끝을 구분하는 요소
  • 컴파일러는 각 문장을 구분하는 요소로 세미콜론을 인식하고, 이는 반드시 포함되어 있어야 합니다.

'C > Study' 카테고리의 다른 글

C 언어 : 6. 루프 제어문  (0) 2026.05.19
C언어 : 5. 연산자  (0) 2026.05.19
C언어 : 4. 문자열과 입출력  (0) 2026.05.18
C언어 : 3. 데이터형  (0) 2026.05.18
C언어 : 1. C 언어에 대하여  (0) 2026.05.17
'C/Study' 카테고리의 다른 글
  • C언어 : 5. 연산자
  • C언어 : 4. 문자열과 입출력
  • C언어 : 3. 데이터형
  • C언어 : 1. C 언어에 대하여
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
C언어 : 2. 첫 프로그램으로 보는 구조
상단으로

티스토리툴바