Language/C

📌 Chapter 02 - C 언어 작성 및 실행

e-cko 2025. 5. 15. 13:16
반응형

1. 개발환경 구축

1) 컴파일러란?

  • 컴파일러(Compiler)는 사람이 작성한 C 언어 소스코드를 컴퓨터가 이해할 수 있는 기계어(0 1)로 번역하는 프로그램이다.
  • , 프로그래머의 말을 컴퓨터 언어로 바꾸는 통역기 역할을 한다.

2) 대표적인 컴파일러 종류

  • Dev C++
  • Eclipse
  • Visual Studio: 가장 널리 사용되며 C 언어 콘솔 애플리케이션 개발에 적합하다.

3) Visual Studio 환경 구성

  • 프로젝트 생성 시
    Windows 데스크톱 마법사빈 콘솔 애플리케이션 선택
  • 파일 확장자는 .c를 사용한다.
  • 콘솔 창 자동 종료 방지 설정
    [도구] → [옵션] → [디버깅] 메뉴에서 설정
  • 프로젝트 기본 저장 위치 설정
    [도구] → [옵션] → [프로젝트 및 솔루션] → [위치]
  • 문법 오류 확인
    빌드 결과 창에서 오류 메시지를 확인한다.
  • 솔루션 탐색기 사용
    여러 파일과 프로젝트 구성을 한눈에 관리할 수 있다.

 

2. C 프로그램 구조

1) 문법 기초

  • #: 전처리 지시자
    ·
    컴파일 전에 처리되는 코드
    #include: 헤더파일 포함
    #define, #undef: 상수 및 매크로 정의
    조건부 컴파일: #if, #ifdef, #ifndef, #else, #elif, #endif
    기타: #error, #line, #pragma

 

  • 헤더파일 종류
    · <stdio.h>:
    기본 입출력 함수
    · "myfile.h":
    사용자 정의 헤더
    ·
    경로에 따라 작성 방식이 달라질 수 있다.

 

  • { }: 코드 블록
    ·
    지역 변수의 범위를 정의하며, 여러 문장을 묶을 때 사용한다.

 

  • ;: 세미콜론
    ·
    명령문의 끝을 나타내는 마침표 역할을 한다.
    ⚠️ 조건문, 반복문 내부에서 필요한 위치에 누락하면 컴파일 오류가 발생한다.

 

  • 주석
    · //:
    한 줄 주석
    · /* */:
    여러 줄 주석

 

  • \: 줄바꿈 문자
    ·
    긴 명령어를 줄바꿈할 때 사용한다.
    ·
    일반적인 줄바꿈 \n과 혼동하지 않도록 주의한다.

 

2) 자주 사용하는 헤더파일

  • <alloc.h>: 동적 메모리 할당
  • <conio.h>: 콘솔 입출력 함수
  • <ctype.h>: 문자 검사 함수
  • <direct.h>: 디렉터리 함수
  • <dos.h>: DOS 관련 함수
  • <errno.h>: 오류 번호 관리
  • <io.h>: 저수준 입출력
  • <math.h>: 수학 함수
  • <process.h>: 프로세스 제어
  • <stdio.h>: 기본 입출력
  • <stdlib.h>: 자료형 변환, 메모리 함수
  • <strlib.h>: 비표준, 대부분 <stdlib.h>로 대체됨
  • <string.h>: 문자열 처리 함수
  • <time.h>: 시간 관련 함수
  • <windows.h>: Windows API 사용 시 필요

<strlib.h>는 비표준 헤더로 사용하지 않아도 되며, <stdlib.h>로 대체 가능하다.

 

 
 

3. main() 함수

1) main 함수란?

  • C 프로그램의 시작점(진입점)이다.
  • 프로그램당 하나의 main 함수만 존재해야 한다.

2) 작성 예시

  • 표준 작성 방식:
    int main(void) { return 0; }
  • ⚠️ void main()도 실행은 되지만, 표준이 아니므로 사용을 권장하지 않는다.
 

 

4. 입출력 함수 (<stdio.h>)

  • printf("출력내용");: 화면에 출력
  • scanf("%d", &변수);: 사용자로부터 입력 받기
    ⚠️ scanf()에서 & 기호 누락 시 입력이 변수에 저장되지 않는다.

5. 명령 블록

  • 중괄호 {}를 사용해 명령어들을 묶는다.
  • 해당 블록 내의 명령어는 조건문이나 반복문 등에서 함께 실행된다.

6. 개행 문자

  • \n: 줄바꿈 문자
  • 문자열 출력 시 다음 줄로 이동하는 역할을 한다.
    출력 결과가 연이어 나오지 않도록 할 때 자주 사용한다.

7. 세미콜론 ;

  • C 언어 문장의 끝을 표시하는 기호이다.
  • 대부분의 명령문 뒤에는 ;가 필요하다.
  • ⚠️ 조건문, 반복문 자체에는 ;를 붙이지 않도록 주의한다.

8. 오류 처리 방법

1) 컴파일 오류 (Compile Error)

  • 문법적 문제로 인해 코드가 실행 자체가 되지 않는다.
    세미콜론 빠짐
    함수 이름 오타
    괄호 짝이 맞지 않음

2) 논리 오류 (Logical Error)

  • 문법적으로는 문제 없지만, 의도한 결과가 나오지 않는 경우
  • 프로그램이 실행은 되지만 예상과 다른 동작을 한다.
  • 디버깅을 통해 원인을 찾아야 한다.

디버깅 방법:
빌드 후 [F10] 키로 한 줄씩 실행
중단점(Breakpoint)을 설정해 흐름 확인
변수 값 확인하며 문제 추적 가능


9. 마무리 정리

1️ 컴파일러는 소스코드를 기계어로 번역하는 역할을 한다.
2️
Visual Studio C 콘솔 개발에 적합하며 환경 설정이 중요하다.
3️
C 프로그램은 반드시 하나의 main() 함수로 시작한다.
4️
#include, ;, {} 등 기본 문법 요소를 반드시 정확히 사용해야 한다.
5️
printf() scanf()는 가장 기본적인 입출력 함수이다.
6️
오류는 컴파일 오류논리 오류로 나뉘며, 디버깅은 문제 해결의 핵심이다.


10. 예제 코드

c

복사편집

// 간단한 C 프로그램 예제

#include <stdio.h> // 입출력을 위한 헤더

 

int main(void) {

    int age; // 나이 변수 선언

 

    printf("나이를 입력하세요: "); // 사용자에게 안내

    scanf("%d", &age); // 사용자로부터 정수 입력 받기

 

    printf("당신의 나이는 %d살입니다.\n", age); // 결과 출력

 

    return 0; // 프로그램 정상 종료

}

 

반응형