글
교재: C언어 프로그래밍
출판사: 홍를과학출판사
평가기준: 시험 35%, 실습 10%, 출석 5% (중간까지 - 5장까지, max 6장)
강의자료: http://viscom.yonsei.ac.kr/zeroboard/zboard.php?id=lect_6_comp
조교: 최종훈(창조관 252호 / 760-2293/ 공1육-9팔팔7-73오6/ cjhun78@empal.com)
C언어의 장점: 하드웨어를 컨트롤 할 수 있다.
1장. C언어 소개
[C언어 역사]
B언어를 계승하는 언어, 그래서 C언어다.
AT&T의 장비 분사회사: 루슨트 테크놀리지
K&R C언어: 호환성의 문제 발생 > ANSI C언어
[C언어 특징]
이식성: OS가 바뀌어도 소스코드 수정이 필요없음
간결함: 동일한 명령을 소스코드로 작성해도 타 언어보다 간결하고 강력하다
모듈성: 함수를 통한 모듈화가 가능하다 - 많은 사람들이 함께 소스코드르 짜는 것이 가능해졌다.
효율적: low level 프로세싱 가능
작은언어: 적은 수의 키워드를 정의(키워드: C언어에서 고유하게 쓰이는 명형어)
포인터: 메모리를 직접 제어가능(메모리의 중요성 - 데이터를 저장할 수 있는 기본적인 공간이 메모리)
컴파일형 언어: 바이너리 코드 생성 가능(인간이 이해하는 언어(C언어) -> 컴퓨터가 이해하는 언어(바이너리))
cf. 인터프리터 언어: 해석기 -> 해석해서 출력해 줌 : 속도가 느림 ex) 베이직
[간단한 C 프로그램]
#include <stdio.h> ..... 표준 입출력용 header 파일 (많이 쓰는 함수가 정의)
main() ...... 반드시 포함
{ .... 프로그램 본체는 {}내에 작성
printf("Programming in C is easy. \n"; ......출력문
}
- 대소문자 구분
- \n : 개행문자(new line)
- 문장 끝은 semicolon(;)으로 종료
- printf("....")는 출력을 위해서 미리 작성된 프로그램으로서 library 함수라고 함
[C프로그램 개발 과정]
프로그램 개발 과정
텍스트 편집기 -> 원시파일(.c) -> 컴파일러 -> 목적파일(.obj) --- +라이브러리 -->링커 -> 실행파일(.exe)
프로그램 실행
입력 -> 실행파일 -> 출력
[프로그램 작성 및 실행]
프로그램 개발 도구
- 명령어 방식: 개별 명령어를 사용하여 각 단계 수행
DOS UNIX
편집 edit start.c % vi start.c
컴파일&링크 bcc start.c % cc start.c
실행 start % a.out
- 통합 개발 환경
한 프로그램에서 편집, 컴파일, 링크, 실행 기능을 모두 제공
[통합개발환경을 사용한 프로그램 개발]
Visual C++ 프로그램 실행
새 프로젝트 파일 생성
- [File] - {New] 메뉴 선택
- Project 탭에서 Win32 Console application 을 선택하고
Project name: 어쩌구 저쩌구, Location: 프로젝트 생성될 디렉토리 ....그리고 OK 누르면 시작
C 소스코드 만드는 과정
Files 탭에서 C++ source file을 선택하고
어쩌구저쩌구 선택해서 file탭에 실행 파일명을 써주고 OK
프로그램 작성시 Ctrl + S를 눌러서 저장
bulid 버튼을 누르면 컴파일과 링킹이 같이 됨
run파일을 누르면 실행
컴파일 & 링크: 탄축키 F7
0 error(s), 0 warning(s) 라고 나와야 실행이 가능
종료 [file] - [save all] 메뉴 선택
2장 C언어의 기초
[프로그램과 표준 입출력]
- 프로그램: 입력 -> 프로그램(처리) -> 출력
- 표준입출력(standard input and output: stdio)
표준입력: 키보드 입력
표준출력: 모니터 또는 터미널로 출력
[출력 프로그램]
int -> 함수의 자료형이 정수형이다.
int를 써주고 마지막에 return 0;을 써주지 않으면 warning이 뜬다.
main() = main(void)
\n -> new line, 즉 enter의 의미다.
[계산을 하는 프로그램]
#include <stdio.h>
int main(void)
{
int x, y, z;
x = 500; y=125;
z = x+y;
printf("Sum is %d",z);
return 0;
}
[입력을 포함한 프로그램]
- 변수 값 입력
scanf("%d", &a); ....a = (정수입력) ......베이직의 input = 값 입력의 기능이네~
scanf("%f", &x); ......x = (실수 입력) ......float(실수)는 4byte
------------------- &a 에 대해 ----------------
컴파일러 등이 a를 위해 잡아놓은 첫 번째 공간을 &a라고 한다
그 장소에 키보드로 입력받은 값을 &a가 있는 메모리 안에 저장하겠다
주소의 위치를 컴파일러에게 알려주기 위해 &가 붙는다.
----------------------------------------------
#include <stdio.h>
int main(void)
{
float r,s;
printf("원의 반지름을 입력하세요:");
scanf("%f",&r);
s = 3.14159*r*r;
printf("원의 면적은 %f 입니다. \n",s);
printf("원의 지름은 %f 입니다. \n",2*r);
return 0;
}
======== 결과 값 ===========
원의 반지름을 입력하세요: 4
원의 면적은 50.265440 입니다.
원의 지름은 8.000000 입니다.
Press any key to continue
===========================