C언어 기본 작성 방법
위에 보이는 경로에 내 문서- 수업(새 폴더 만들기) - C언어수업(새 폴더 만들기)- 날짜 (2013-03-05)
위의 경로를 복사하여 아래 그림과 같이 메모장 에 복사한다. 참고로 위의 main.c, main.exe, main.obj는 내가 프로그램을 완성시켜서 그런것이다. 처음 할 때는 없다!!
위에서 enter를 친다. 그렇게 되면 아래 그림처럼
바로 생성한 파일의 경로에 저장할 수 있게 된다.
프로그램을 메모장에 작성한뒤 저장한다
main.c로 저장한다. 확장자 반드시 .c!!!!
아까 만들었던 폴더에 우클릭해서 프롬프트 실행한다. 아이콘에 우클릭 아님.
프롬프트에 cl main.c를 친다
잠시 기다리다가 글자가 나오다가 멈춘다
그리고 D:\내문서\C언어 수업\2013-03-15>라는 필자가 지정한 경로가 나오는데 여기에서 main이나 main.exe로 입력한다. tab키를 눌러도 된다!!
그러면 pritntf문에서 작성하였던 내용이 출력되는것을 확인 할 수 있다.
그리고 main.exe와 main.obj가 생성되는 것을 볼 수 있다. 참고로 위의 생성되어 있는 것은 먼저 실행해서 만들어 놓은 것을 스크린 샷 햇다. 처음부터 하려니 귀차니즘이 ㅎㅎ
자 이번엔 위의 그림에서 아이콘 3개를 보자!!! 그리고 아래에 추가된 아이콘들을 잘보자!!!
main.c와 main.asm파일이 추가 된것을 알 수 있다. 이 파일들을 만드는 특정한 명령어가 있다.
main.i= cl /P 파일명.c, cl 파일명.c /P
main.asm= cl /Fa 파일명.c, cl 파일명.c /FA
입력한다. 반드시 대소문자를 구분하며 띄어쓰기도 해야한다. 파일명이 main이므로 명령어 뒤에 main.c를 입력한다. 만약에 test.c라면 cl /P test.c라고 입력한다. 그러면 test.i라는 파일이 생성 될것이다.
그러면 위의 그림처럼 각각의 아이콘이 나온다.
처음에 보이지 않는 이유는 원래는 이 파일을 만든다. 그런데 컴파일 과정에서 이 두 개의 파일을 지우는데 대신에 temp라는 파일에 저장이 된다. 그러니깐 위의 경로상에서 보이지 않을 뿐이다. 위의 명령어로 파일을 생성한 것은 2개의 파일을 temp라는 파일에서 명령어로 강제로 복사하여 가져온 것이다.
자, 그럼 다음으로 이 두개의 파일을 열어 보겠다. 일단 main.i를 C프로그램으로 열어보겠다.
이렇게 뜬다. 스클롤을 내려서 가장 아래 부분으로 가면은
우리가 프로그램한 문장이 보인다. 그런데 #include <stdio.h>가 보이지 않는다. 위그림에서 보이는 빨간네모 위에 여러 글자가 보이는데 #include 가 전처리 되어 나온것이다. 그래서 .i를 순순 C파일이라고 한다.
그러면 main.asm은 메모장으로 열어보겠다
이런 화면이 나타난다. 위의 C프로그램으로 열었던 것보다 촘촘하게 글자가 붙어있다.이 asm파일은 순수 파일인 main.i를 어셈블리어로 바꾼 파일이다. 이 어셈블리를 완벽하게 다룬다면 C언어가 필요없다. 그러나 어셈블리를 모르므로....... 보기만 해도 머리가...
이것을 나중에 만든다던데 ㄷㄷ;
암튼 이제는 아래그림과 같이 main.c를 복사하여 사본파일을 뒤에 확장자 .dat로 바꾼다.
이것을 C언어 프로그램을 연결하던지 C언어 프로그램을 직접열고 드래그해서 끌어오면 다음과 같은 화면이 생성된다.
16진수 코드로 되어 있는 코드를 볼 수 있다. 제일 앞에 4D 5A를 마우스로 드래그 하면 오른쪽에 MZ로 해석이 된다. 이것은 main.exe 파일 고유의 000이다.
다음음 bmp파일과 jpg파일을 C언어로 연결한 모습이다. 당연히 확장자를 각각 .dat로 바꾼 뒤 연결한다.
bmp파일
jpg파일
이론 수업!!
ALU
CU
Register
Register에서 Alu로 명령을 하는데 이것을 프로그램이라고 부른다.
cpu안에 이 3대 구성요소가 존재하며, 이것을 통합하여 core라고 부른다
컴파일은 간단히 말해서 기계어 -> 컴퓨터 언어로 바꾸는 과정을 통틀어 컴
파일이라고 한다.
컴파일 과정을 살펴보자.
실행.exe <- 0101011101<- mov ax.bx <- ax=bx<- 프로그램.c
0101011101은 어셈블리어를 통합하여 기계어로 바꾸어 놓은 상태. 즉, 컴퓨터 언어로 바꾸어 놓은 상태이다.
mov ax.bx는 어셈블리어이다.
실행.exe는 기계어를 링크시켜서 만들어내 실행 파일. 우리 인간이 컴퓨터 화면으로 볼 수 있게 윈도우에 맞춰서 연결하는 것을 링크이며 이 프로그램을 링커라고 한다.
ax=bx 전처리된 순수한 파일.i이다. ax=bx, mov ax.bx, 0101011101은 다 똑같은 말이다. 그런데 그것을 순수 C파일, 어셈블리어, 목적파일인 기계어로 바꾸어진 형태로 서로가 달리 보인다. 여기서, 알 수 있는 사실은 우리가 0101011101처럼 기계어를 알면 C언어를 배울 필요가 없다. 그러나 0101011101을 다알기는 전문가가 아니면, 거의 불가능하므로 C언어를 통하혀 컴파일 하여 프로그램을 작성을 하는 것이다.
컴퓨터의 구조(미완성)
ppt 참고
'C언어 수업정리 > 3월 수업정리' 카테고리의 다른 글
3월11일 아스키코드, 유니코드 ,연산자, 논리식.... (0) | 2013.03.11 |
---|---|
3월 8일 형수정자 연산자 sizeof (1) | 2013.03.08 |
3월 7일 비트개념, 변수선언, 자료형타입 (0) | 2013.03.07 |
3월 6일 기본, 변수, 자료형(숫자) (0) | 2013.03.06 |
3월 4일 수업정리 cpu3대 구성요소 (0) | 2013.03.04 |