Uploaded by 이재현

01 C언어개요

advertisement
왜 C언어일까?
C언어의 개요
컴퓨터
Computer
컴퓨터(computer)
• 프로그램을 이용하여 어떤 결과를 도출하기 위해 디지털
정보를 처리하고 출력하는 장치
• 일련의 명령들을 프로그래밍 언어를 이용하여 작성함
정보의
처리
컴퓨터의
주어진 자료를 입력 받아
5대기능
입력 기능
정해진 과정에 따라 처리하여, 연산 기능
프로그램
명령어 순서
프로그래밍 언어로 작성
그 결과를 사용자에게 제공
정
보
체계화된 지식
→의사결정 판단 평가
기억 기능
출력 기능
제어 기능
하드웨어
중앙처리장치(CPU, Centrol Processing Unit)
• 컴퓨터 시스템의 두뇌 역할을 담당하는 장치
• 제어장치, 연산장치, 레지스터
제어장치(CU, Control Unit) - 프로그램이 지
시하는 대로 시스템의 모든 동작 관할
연산장치(ALU, Arithmetic and Logic Unit) 산술연산, 논리연산
주기억장치
RAM
Access
Memory)
현재 (Random
처리중인
자료와
프
로그램
저장
ROM
(Read
Only Memory)
• 주기억장치(RAM, ROM) , 보조기억장치(HDD, FDD)
보조기억장치
영구적으로 저장할
자료
자기디스크(FDD,
HDD), 광디스크
(CD-ROM,
DVD-R),
자기
테이프
저장
입력장치
키보드
키보드, 터치-톤 장치, 셋톱박스
• 처리할 자료를 외부로부터 입력 받는 장치
지시장치
마우스, 트랙볼, 터치패드, 포인팅 스틱,
태블릿, 터치스크린, 광펜 디지타이저
• 키보드, 마우스, 터치패드, 스캐너
원시데이터 입력
장치
바코드, 스캐너, 이미지 스캐너,
문자 인식 장치
소프트 카피
모니터, 스피커
하드 카피
프린터, 플로터
기억장치
• 컴퓨터에 필요한 정보를 저장하는 장치
출력장치
• 처리된 결과물을 외부로 출력해주는 장치
• 프린터, 스피커, 모니터
CPU의 구성
제어장치(CU)
연산장치(ALU)
• Arithmetic and Logic Unit
• 자료를 처리하고 연산하는 장치
• 산술연산 : 사칙연산(+, -, *, / )
• 논리연산 : 논리합(OR), 논리곱
(AND), 논리부정(NOT)
• Control Unit
• 프로그램이 지시하는 대로 시스템
의 모든 동작 관할
• 프로그램 명령을 해석하고, 해석
된 명령의 의미에 따라 연산장치,
기억장치, 입출력장치 등에게
동작을 지시하는 제어신호 발생함
레지스터(Register)
• CPU 내부에 위치한 기억 장치
• 주기억장치로부터 읽어온 명령이
나 데이터를 저장하거나 연산된
결과를 저장하는 공간임
프로그램 안에 들어있는 것
• 컴퓨터에게 무엇을 어떻게 시킬 지를 기록해놓은 문서가 프로그램
(program)이다.
• 프로그램의 각 문장은 컴퓨터에게 작업을 지시하는 명령(instruction)
으로 되어 있다.
프로그램은 명령어 모음
프로그램 언어
C언어
프로그래밍언어
컴파일러?
• 컴파일러는 프로그래밍 언어를 기계어로 번역한다.
프로그래밍언어
C언어
•
•
•
•
1970년대 초 AT&T의 Dennis Ritchie 에 의하여 개발
B언어->C언어
UNIX 운영 체제 개발에 필요해서 만들어짐
처음부터 전문가용 언어로 출발
C언어의 정신
• 프로그래머를 믿어라. (Trust the programmer)
• 프로그래머가 작업을 못하게 방해하지 마라. (Don't
prevent the programmer from doing what needs to be
done)
• 언어를 작고 간단하게 유지하라. (Keep the language
small and simple)
• 명령을 실행하는 방법을 하나만 제공하라. (Provide only
one way to do an operation)
• 호환성은 장담할 수 없더라도 빨리 작동하게 만들어라.
(Make it fast, even if it is not guaranteed to be
portable)
출처: C99 Rationale
C언어의 특징
프로그램
개발
C프로그램의 개발
프로그램의 이해
/* test1.c */
#include <stdio.h>
int main(void)
{
printf(“Hello World\n”);
return 0;
}
프로그램의 이해
/* test1.c */
#include <stdio.h>
int main(void)
{
printf(“Hello World\n”);
return 0;
}
▪ 전처리기
▪ <stdio.h> 헤더파일의 내용을
포함하겠다는 의미
▪ Standard input output
표준 입출력 라이브러리 사용
▪ 파일 입출력, 콘솔화면 입출력,
파일구조체, 문제 입출력 등등
프로그램의 이해
/* test1.c */
#include <stdio.h>
리턴형
함수명
매개변수
int main(void)
{
printf(“Hello World\n”);
return 0;
}
▪ 함수
- 프로그램에서 처리할 내용을
모아두는 기본 단위
- C프로그램은 하나 이상의 함
수로 구성
- 함수의 리턴형, 이름, 매개변
수 리스트로 구성
-함수의 끝을 만나거나 return
문을 만나면 함수를 호출한 곳
으로 되돌아감
▪ 진입점 함수(Entry-point
Function)
- 프로그램이 처음 시작될 때
운영체제가 호출하는 특별한
함수
- main함수가 C의 진입점 함수
프로그램의 이해
▪ main 함수의 리턴형
✓main 함수는 값을 반환하지 않거나 int형을 반환한다.
void main(void)
{
}
int main(void)
{
return 0;
}
▪ main 함수의 리턴 값
✓프로그램이 종료될 때 운영체제에게 넘겨주는 값
✓프로그램의 종료 코드(exit code), return 0은 오류없이 종료했다는 뜻.
int main(void)
{
...
return 0;
}
int main(void)
{
...
return 1;
}
void main(void)
{
...
return;
}
프로그램의 이해
/* test1.c */
#include <stdio.h>
int main(void)
{
▪ 문장
- 함수를 구성하는 기본 단위
- C 프로그램의 각 문장은 세미
콜론(;)으로 끝남
▪ printf 함수
- 출력을 하기위한 함수
printf(“Hello World\n”); - 출력할 내용을 “”로 묶어서 사
용
- 줄바꿈 문자(“\n”)
return 0;
}
프로그램의 이해
▪ 주석(Comment)
/* test1.c */
#include <stdio.h>
int main(void)
{
printf(“Hello World\n”);
return 0;
}
- 코드에 대해 설명하기위한 목
적, 프로그램에 대한 정보 제공
- 프로그램 수행에는 영향을 미
치지 않는 요소(컴파일X)
- 한줄 주석 : //주석이다옹
- 범위 주석 : /*주석이
다옹*/
- 단축키 : Ctrl + K + C (달기)
+ U (해지)
파이썬 프로그래머의 C언어 첫 코딩
main(void)
{
print(“Hello World\n”)
}
파이썬 프로그래머의 C언어 첫 코딩
main(void)
{
print(“Hello World\n”);
}
파이썬 프로그래머의 C언어 첫 코딩
main(void)
{
printf(“Hello World\n”);
}
파이썬 프로그래머의 C언어 첫 코딩
include <stdio.h>
main(void)
{
printf(“Hello World\n”);
}
파이썬 프로그래머의 C언어 첫 코딩
#include <stdio.h>
main(void)
{
printf(“Hello World\n”);
}
Download