원래 반복문 부터 하려고 했는데 처음 접하는 사람들이 쉽게 접할 수 있도록 아예
기초부터 시작을 하도록 하겠습니다
c언어의 장 단점을 말할건데 보자마자 눈에 들어오진 않을것이다
장단점을 확인하려면 c언어에 익숙해지고 다른언어도 해봐야 하기 때문이다
A라는회사의 CPU가 있고
B라는회사의 CPU가 있다
cpu를 사게되면 메뉴얼이 따라오게되는데
메뉴얼은 A의CPU와 B의 CPU는 다를 수 밖에 없다
(메뉴얼은 제조사의 홈페이지에서 받을 수 있다)
그 메뉴얼의 설명에는 어셈블리 언어 의 체계는 어떻게 되어있고(그런게 있다)
이렇게 명령어를 조합해서 cpu에게 명령을 내리면 된다.... 라고 되어있다
A의 CPU에 명령을 내리는 체계와 B의 CPU에 명령을 내리는 체계가 다르다
어셈블리어는 기계가 이해하기 좋은 언어이고
C언어는 사람이 이해하기 좋은 언어이다
그래서 하드웨어 체계가 달라지면 어셈블리어는 CPU마다 다르고
C언어는 하드웨어 체계가 다르다고 C언어 코드는 달라지지 않는다
어셈블리어는 기계어에 가깝기 때문에 적용하기 어렵고 공부하기도 어려운 단점이있다
그리고 어셈블리어로 소프트웨어를(예, 테트리스, 갤러그 등) 을 만든다 해도
A라는회사의 CPU와 B라는회사의 CPU에서 둘다 실행시킬 수 없다
(CPU마다 어셈블리어가 다르기 때문에)
이러한 단점을 극복하기 위해 만든게 프로그래밍 언어이다
프로그래밍언어의 특징은 사람이 이해하기 쉬운 언어이다
그래서 공부하기 쉽고, 그것을 적용하기가 매우 쉽다
(우리가 알고있는 영단어들이 많이나온다,ex) if, while, 등)
그럼 C언어로 게임을 만들면 A cpu와 B cpu 가 게임을 실행 시킬 수 있을까?
답은 아쉽지만 절대 아니다
어셈블리어가 아닌 c언어는 우리가(사람이) 이해하기 쉬운 언어이기때문에
기계는 이해할 수 없다
그렇다면 어떻게 해야할까?
컴파일러(번역기,통역기) 라는것을 사용하면 된다
컴파일러란 프로그래밍 언어를 CPU에 동작 가능한 언어로 변형 해주는 프로그램이다
컴파일러가 없으면 C언어(프로그래밍언어)를 배울 필요도 없는것이다
컴파일러가 무엇인지 아직 감이 안오는분을 위해 예를 들어 다시 설명해보겠다
한국어와 영어를 할 줄 아는 한국인이 있고,
영어와 일본어를 할 줄 아는 통역사가 있고,
일본어만 할 줄 아는 일본인이 있다.
한국인이 일본인한테 말을 전하려면 통역사를 거쳐 가야 말이 통할 수 있다.
이것처럼
한국어와 C언어를 할 줄 아는 한국인이 있고,
C언어 와 기계어를 할 줄 아는 컴파일러가 있고,
기계어만 할 줄 아는 컴퓨터가 있다.
한국인이 컴퓨터와 대화를 하려면 통역을 하는 컴파일러를 거쳐야 대화을 할 수 있다.
*기계어
0과 1로 구성된 형태의 언어를 뜻함(기계가 이해할 수 있는 형태)
*고급언어, 저급언어
사람이 이해하기 쉬운언어는 고급언어, 기계어에 가까울 수록 저급언어 이다
C언어는 고급언어쪽 이면서 메모리에 직접 접근이 가능하기 때문에 저급언어의 특성도 함께 지닌다고 이야기 한다.
*C언어의 장점
1. C언어는 절차지향적 특성을 지닌다, 따라서 쉽게 익숙해 질 수 있다
2. C언어로 작성된 프로그램은 이식성이 좋다
이식성 : 컴파일러가 알아서 CPU의 따라 다른 기계어로 변환해준다
3. C언어로 구현된 프로그램은 좋은 성능을 보인다.
솔직히 장점,단점은 직접 해보며 느끼는게 좋다
이런것 안다고 C언어 잘하는것도 아니며 실무에 있어서도 좋은것도 아니다
C언어도 언어이기때문에 많이 써보고 많이 보면 익숙해지고, 또 잘해질 수 있다
'IT관련 > C' 카테고리의 다른 글
프로그램의 기본 구성(Hello World! 들여다보기) -좀 길어요 (0) | 2013.03.21 |
---|---|
프로그램 완성과정(실습) (0) | 2013.03.21 |
프로그램의 완성과정 (0) | 2013.03.20 |
반복실행을 명령하는 반복문(while문) (0) | 2013.03.18 |