언어/기타
2006.08.09 20:26

C 언어를 두발로 떄리기. 2화.

조회 수 686 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요. 초코렛도 아닌 초코군입니다.


요번편은 C 언어와 접하기 위한 두번째 단게입니다.^^*


 


 


저번편은 너무 지저분하고 쓸대없는말이 많아서..요점정리가 좀필요한거같앗습니다. 요번편에선 간단하고 깔금하게 정보를 이식해드리지요. ^^*;


 


그럼 시작해볼까요?


 


 


우선 프로그램을 제작한다는건. 프로그램을 창조한다는거와 같지요. 그렇기 위해선.


 


1. 프로그램에 목적을 만든다.


2. 프로그램을 어떡게 만들고 작성할지 사용하는 방법을 결정한다.


3. 인제 계획됀 시나리오를 갇고 실행에 옴긴다.  ( 즉 프로그램을 작성한다.)


4. 작성됀 프로그램을 확인하기 위해서 프로그램을 실행한다.


 


이렇게 4단게가 돼겟습니다..


 


첫 번쨰 단게인 목적을 만든다는건.. 프로그램이 어떤목표로 이용됄껏인지 미리 생각해놓는겁니다. 예를들어 나는 RPGXP 툴에 한게를 뛰어넘어 더 큰 게임을 만들고 십다. 그렇다면 어떤 프로그램을 이용해서만들건지. 즉 (사용될 언어,시스템구성, RPG,FPS,시뮬레이션) 이런것들을 구상하는겁니다.


 


두 번쨰 단게에선 세세하게 나눠보지요. 예를들어 시스템 구성 엔진. 그래픽 구성엔진. 그래픽 텍스쳐.


나는 3D 로 만들고십다하면. 물리엔진과 여러가지 구성엔진들을 상상해놓고. 즉 실행으로 옴겨야하지요.


3D 게임에 가장 어려운 파트는 텍스쳐와 3d 입체 물리 구성과 캐릭터 모델링이 돼겟습니다. ^^*;


 


세 번쨰 단게에선 제작 기간이고... 실행과 성공에 오차를 걱으며 연습하게 됍니다.


 


네 번쨰 단게에선 마지막 제작됀 C 소스 프로그램을 컴파일 시켜서 Executable 즉 .EXE 파일을


만든다고 생각하시면 됍니다. ^^*;


 


 


ㅁ 프로그램의 개발 과정 ㅁ


 


프로그램의 개발 과정은 다시 단계별로 나눌 수 있지요. 우선 첫 번쨰 단게로 소스코드를 작성하여 디스크로 저장 하기 위하여 에디터를 사용하지요. (예: 볼렌드 컴파일러 ) 두 번쨰 단게는 오브젝트 코드를 생성하기위해서 소스 코드를 컴파일하지요. 세 번쨰 단게에선 EXE 파일을 만들기 위해서 컴파일된 코드를 링크하지요. 마지막 단계에선 작성된 프로그램이 정상적으로 동작하는지 확인하기 위해서 프로그램을 실행하지요 ^^*;


 


 


 


자 이렇게 해서 개발 과정을 배워보셧습니다. 대충 이미지가 떠올르지요? ( 라면 생각박게 ...는 덜덜 );;;


 


간단하게 구성해서


 


 


                        START         ---------->  에디터의 사용                             <BR>                                                                      ↓                                  <BR>                                                                 소스 코드


                                                                      ↓


   


                                                           ㅣ 소스 코드의 ㅣ


                                                           ㅣ    컴파일     ㅣ


 


                                                                      ↓


      


                                                                 오브젝트


                                                                    코드


 


                                                            ㅣ   오브젝트   l


                 라이브러리 파일          →         l  파일의 링크 l         →          실행가능한 프로그램 ( ^_^) 


 


 


 


이렇게 됍니다.


 


 


 


소스파일이 머냐구요?


 


소스파일은 C 언어죠 여러분은 C 언어로 작성된 코드를 이해할수잇지만 컴퓨터는 결코 소스 코드를 이해 할수없어요. 대신 컴퓨터는 기계어 (Machine language) 로 작성된 명령문을 요구하죠. 그래서 컴퓨터에서


C 언어로 작성된 프로그램이 컴퓨터 상에서 실행될 수 있으러면 우선 소스 코드에서 기계어로 변환될 필요가있는 것입니다. ^^*;


 


프로그램 개발 과정 두 번쨰 단계인 변환 작업은 컴파일러 ( compiler) 라는 프로그램에 의해서 수행됩니다.


컴파일러는 소스 파일을 입력받아서 대응하는 기계어 명령문을 작성하여 디스크 파일로 저장하지요. 


컴파일러에 의해서 생선되는 기계어 명령문을 [FF0000_FC#] 오브젝트 코드 [#FC_FF0000] (object code)


라고 하며, 오브젝트 코드가 포함되어 있는 디스크 상의 파일을 오브젝트 파일이라고 하기도 합니다 ^^*.


 


인제 링크 작업에 대해 배워봅시다.


 


프로그램을 실행하기 위해서는 다른 단계가 더 필요합니다. ( 복잡하지요 ^^*; 지금 확 게임하러갈까요?)


우선 링크작업 에 배우기전에 컴파일러에 대해 한번더 정리해봅시다. C. 컴파일러에서는 오브젝트 코드를 가지고 있는 함수 라이브러리 (function library ) 가 함께 제공됩니다. 오브젝트 코드는 컴파일된 상태의 코드를 말하는건 알고게시지요? 하지만 이런 내장함수는 컴파일러를 제작한 회사에서 따로 작성한 C 코드를 통해서 생선된 것입니다. 그래서 컴파일러를 구입할 떄 사용할 수 있는 상태로 함께 제공되는 것이지요.


예를 들어 printf() 함수는 라이브러리 함수의 하나이지요.


 


 


printf() 대한 설명은 나중에 가서 하겟습니다 ^^*;


 


이런 라이브러리 함수는 화면에 자료를 출력하거나 디스크 파일 에서 데이타를 읽어들이는 것과 같이 프로그램에서 흔이 요구되는  동작을 수행하기 위해서 사용되지요. 프로그래머가 작성한 프로그램에서 이런 내장 라이브러리 함수를 전혀 사용하지 않는 경우는 거의 없으며, 이런 함수를 사용하는 프로그램을 작성했다면 소스코드를 컴파일하여 생성되는 오브젝트 파일은 마지막 단계인 실행 가능한 프로그램을 생성하기 위해서 함수 라이브러리 내의 오브젝트 코드와 결합돼야 합니다. " 실행이 가능하다 ( executable )" 는 것은


프로그램을 컴퓨터에서 사용하거나 사용할수 있다는 것을 뜻합니다.  이것을 링크 과정 이라고 하는것입니다. (linking ) 이런 과정에선 (linker) 라는 프로그램에 의해서 수행되지요.


 


위에 그래프 참고하세요 ^^*; 좀더 이해하기 편하실겁니다.


 


 


좀더 간편하게 구성을 하기위해 마지막으로 요점정리입니다. ^^*;


 


 


                                                      →→→→   시작.


                                                      ↑               ↓


                                                      ↑         소스 코드의


                                                      ↑         입력과 수정


                                                      ↑               ↓


                                                      ↑         소스 코드의


                                                      ↑            컴파일


                                                      ↑               ↓


                                                      ↑  


                                                    YES  ← 에러가 있나요? ( ' _ ')


                                                      ↑               ↓


                                                      ↑              NO


                                                      ↑   


                                                      ↑          프로그램의


                                                      ↑              링크


                                                      ↑


                                                      ↑               ↓


                                                      ↑


                                                    YES  ← 에러가 있나요? ( ' _ ')


                                                      ↑               ↓


                                                      ↑              NO


                                                      ↑                 


                                                      ↑          프로그램의


                                                      ↑              실행


                                                      ↑


                                                      ↑               ↓


                                                      ↑


                                                    YES  ← 에러가 있나요? ( ' _ ')


                                                                       ↓


                                                                      NO


 


                                                                       끝         (프로그램의 탄생 )


 


                                                       (  ^ _______________ ^ )


 


 


여러가질 쓰다보니 너무 길어 져버렷네요... 프로그램을 제작하는건 다음시간으로 미뤄둬야할꺼같아요


흑흑.... 지금까지 집중력 안떨어지고 TV 안보고 게임안하고 채팅 안하고 공부하신분에게 =ㅁ= 감탄사를;;


하셧다면!! 다시 공부하세요 버럭;; 농담이구요  꾹참으시고  열씸히 연구해보세요. C 가 지겨울지는 모르나.


배우면 결코 후회하지 않는 언어죠. 이언어를 배우면 모든 언어는 쉽게 마스터 할수잇습니다. ^^*


 


그럼 다음시간 에는


 


볼랜드 프로그램을 이용해서


간단한 C 프로그램을 만드는 방법을 배워보겟습니다. ^^*


 


볼랜드 프로그램은 현제 언어재로자료실에 잇으니 받아두셔서 만지작 해보실뿐은 ( 후다닥 달려가세요 )


 


 


그럼 모두 다음시간에 뵙죠 =ㅁ=;;


 


 


 


                                                                                                                   By. 초코군

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
624 언어/기타 글자색 바꾸기!! [ 초보용 ] 샤르엘 2006.08.10 1049
623 언어/기타 C#.NET 유용한 포인터 사용법(1) - 스택기반의 배열 괴짜인간 2006.08.10 378
622 언어/기타 용량 100Kb도 안되는 FPS 게임을 보신적이 있나요? 1 file 아란 2006.08.09 824
621 언어/기타 나 말고 글 올리시는 분들 늘어났다. 아란 2006.08.09 569
» 언어/기타 C 언어를 두발로 떄리기. 2화. 초코군 2006.08.09 686
619 언어/기타 MFC에 D3D환경을 구축해보자~ 피군 2006.08.09 625
618 언어/기타 순우리말언어' 창조99 ' [휴식타임] Dr.None 2006.08.09 883
617 언어/기타 재미있는 C의 세계 +_+ Dr.None 2006.08.09 624
616 언어/기타 제곱근의 연산 file Yggdrasil 2006.08.09 597
615 언어/기타 ROAM에 관련된 자료. 174 피군 2006.08.08 24848
614 언어/기타 C 언어에 첫발 내딛기. 1화 file 초코군 2006.08.08 717
613 언어/기타 후훗.. 피군 2006.08.08 658
612 언어/기타 게임기초 쌓기! 천류지유 2006.08.08 1462
611 언어/기타 댓글을 다시는 분이 3분 더 생겼다. 아란 2006.08.08 477
610 언어/기타 게임 그래픽스 제작환경 및 도구 카스-오로치 2006.08.08 505
609 언어/기타 게임제작 관리 카스-오로치 2006.08.08 286
608 언어/기타 게임 프로젝트 관리 카스-오로치 2006.08.08 297
607 언어/기타 장르별 게임 플랫폼(1) 카스-오로치 2006.08.08 292
606 언어/기타 장르별 게임 플랫폼(2) 카스-오로치 2006.08.08 261
605 언어/기타 장르별 게임 플랫폼(3) 카스-오로치 2006.08.08 253
Board Pagination Prev 1 ... 15 16 17 18 19 20 21 22 23 24 ... 51 Next
/ 51






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)