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; // 프로그램 정상 종료
}
'Language > C' 카테고리의 다른 글
| 📌 Chapter 04 - 변수와 자료형 - 변수의 기초 (0) | 2025.05.17 |
|---|---|
| 📌 Chapter 03 - 표준 입출력 함수 - 문자 코드 (0) | 2025.05.16 |
| 📌 Chapter 03 - 표준 입출력 함수 - 표준 입력 함수 (0) | 2025.05.16 |
| 📌 Chapter 03 - 표준 입출력 함수 - 표준 출력 함수 (0) | 2025.05.16 |
| 📌 Chapter 01 - C 언어의 개요 (0) | 2025.05.14 |