회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 696

캠퍼스 C 강좌_16

펌웨어 & 코딩언어 구매수 0 2007.11.07 23:32:16
판매자 프리미엄 판매 납포인트 무료 평점 0점 / 총 0명 참여

***************************< 캠퍼스 C  강좌 >******************************
[제목] :
[코드] : campusc1-016 (초급)
[교재] : CAMPUS C (초급, Third edition)  [출판사 : 책과스승]
[알림] :이 파일은 "캠퍼스 C"에서 모든 분께 공개한 "초급 강좌"입니다.
        이 [알림]의 내용을 지우지 않는다면 누구에게나 임의로 복사해 줄 수
        있습니다.그러나 이 강좌 내용에 대한 저작권은 "캠퍼스 C"에 있습니다.

[연락처] : 605-8662 (서울) ("캠퍼스 C", 도서출판 "책과 스승")
           천리안 : go campusc  
           나우콤 : go lcampc
           하이텔 ID : campusc
****************************<< 목 차 >>************************************
<1> menu.exe의 구성
        1> 숙제 해답
        2> 분할 컴파일 방법.
<2> 소스 분석및 문제
**************************< 내용 시작 >********************************
<1> menu.exe의 구성
*********************************************************************** 
1> 숙제 해답
-------------
        같이 보내는 menu.exe  파일에는, 지난 15회 까지 나간  숙제중 해답
이 필요하다고 생각하는 것만 골라 실었습니다. 제  생각에는 스스로 못할 문
제가 별로 없다고  생각했는데, 의외로 해답을 요구하는 분이 많더군요.
 

--------------------
2> 분할 컴파일 방법
--------------------
        "분할 컴파일" 이라는  말이 정확치는 않은것 같은데,  C에서는 컴파
일 할 때 여러 개의 이름으로 된  소스 파일을 "일괄적"으로 컴파일해서 하나
의 실행파일(xxx.exe)를 만드는 방법이 제공되고  있습니다. 이것은 정확하게
는 "make" 라는 유틸리티인데, 터보  C 에서는 "프로젝트(PROJECT)"라는 이름
으로 그 기능을 간단하게 제공하고 있습니다. 먼저  터보 C의 메인 메뉴를 보
면 "PROJECT"라는 항목이 있을 겁니다.

        실제로 연구소 등에서 프로그램을 개발할 때는  여러 사람이 팀을 이
루어서 개발을  합니다. 그 때 "프로젝트"란  용어를 씁니다. 터보  C 메뉴의
project 도 똑같은 의미 인데, 이렇게 프로젝트란  용어를 쓰면 그 일의 규모
가 아주 크고 복잡하다는 느낌이 "솔솔" 풍기지요.
 

        먼저 터보  C의 "project" 항목이  하는 일을 개념적으로  살펴보면,
여러개의 "xxx.c" 파일을 전부 컴파일 하기는  하되, 실행파일은 하나가 되게
끔 만들자는 것입니다. 제가 보내 드린 파일을  실제 예로 들어 보면, 다음과 
같이 menu.c  와 graphic.c를 동시에  컴파일해서 menu.exe라는 실행  파일을
만들자는 겁니다.

        menu.c          \
                          >  -->     menu.exe
        graphic.c       /

 
        이렇게  하기  위해서  할일은 지극히  간단합니다.  즉  보내  드린
"menu.prj" 라는 파일을 보세요. 이 파일의 이름에서  "menu"란 것은 내 맘대
로 지은 것이지만, ".prj"란 확장자는 터보 C  에서 쓰라고 결정해 놓은 것입
니다.
        이 menu.prj는 아주  간단한 "텍스트 파일" 입니다. 이  파일에는 현
재 다음과 같이 딱 딱 두 줄이 들어가 있지요.
        -----------
        menu.c
        graphic.c
        -----------
나는 이  menu.prj 파일을,  터보 C 에디터에서  간단하게 두 줄을  입력하고
"menu.prj" 라고  저장 했습니다. 이와  같이 xxx.prj 파일을 만드는  방법은
간단합니다. 그리고 이  파일의 의미는, 위에 설명한대로 이 파일을  전부 컴
파일 한다는 것이지요.
        따라서 앞으로 menu.prj  에 들어가 있는 형태로  컴파일하고 싶으면
먼저 이 파일을 선택해야 합니다. 선택하는 방법은, 터보 C 메뉴에서
        ---------------------------------------
        [PROJECT] [Project name]을 줄줄이 선택
        ---------------------------------------
하고 이 menu.prj 라는 이름을 입력하면 됩니다.

        작업을 한 후 이 menu.prj를 더 이상 사용할 필요가 없을 때는 역시
        ---------------------------------
        [PROJECT] [Clear project] 를 선택
        ---------------------------------
하면 평상시 처럼, 한개의 파일로 한개의 실행  파일을 만드는 보통상태의 컴
파일을 합니다.
        "PROJECT" 란에는  그외에도 다음과  같은 선택항이 있는데,  현재는
다음과 같은 상태로 설정을 하기로 하지요.
        ----------------------------
        Break make on         Errors    <-- 보기 1
        Auto dependencies     Off       <-- 보기 2
        ----------------------------

        위에서 "보기  1"이 의미하는  것은, "컴파일하다가 Error  메세지를
만나면 컴파일 하는걸 중지 하도록 하자" 라는  의미입니다. 경우에 따라 "경
고(warning) 메세지를  만나면 중지하자" 등  여러가지 선택을 할 수  있습니
다.
        "보기 2"의  의미는, "파일을 만든 시간에  의존(depend)해서 작업을
할까(On) ?  말까 (Off)  ?"를 나타내는 것입니다.

        이건 무슨  얘기 인가  하면, 기본적으로 "make"라는  유틸리티(현재
터보 C 에서는  "PROJECT") 는 시간을 검사해서 컴파일 할  것만 선택을 하는
데, 지금 menu.prj  는 워낙에 간단한  것이니까 상관이 없지만, 실제로는 수
십개의 소스  파일(xxx.c)가 들어가 있습니다.  그런데, 그 중의  파일하나를
수정했다고 칩시다.  그리고 또 컴파일을  할려면, 그 수십개의 소스  파일을
또 전부 컴파일할 필요가 있습니까 ? 변경된  파일만 검사해서 그것만 컴파일
하는게 속도도  빠르고 간편하겠지요. 그런데  "그 변경된 파일"을  알아내는
방법이 바로 "파일의 생성된 시간"입니다.
        이건 마치 형사 콜롬보가 "단서"를  잡는것 같은데, 지금 menu.prj의
소스 파일들 경우를 보면 시간이 다음과 같습니다.

MENU     C       34704 08-01-94  12:31a     <-- 생성 시간
GRAPHIC  C       49510 07-31-94  11:59p
MENU     EXE    130955 08-01-94  12:34a     <-- 아마 최고 느릴꺼다.

위의  경우는 당연히  menu.exe의 생성  시간이  가장 느리겠지요.  menu.c와
graphic.c가 먼저 있어야 그걸로 menu.exe를 만드는것 아닙니까 ?
        따라서 혹시 menu.c 와 graphic.c의  생성시간이 menu.exe 의 생성시
간 보다  더 느리다면,  그것은 나중에  또 수정을  했다는 의미 아닙니까  ?   
이럴 때 위에서 얘기한 항목이

        Auto dependencies     On
으로 되  있다면, 시간을 따져서  해당되는 파일만 컴파일 하겠다는  뜻이고,
Off로 되 있다면,  "시간은 따지지 말고 무조건 모든 파일을  전부 다시 컴파
일하라"는 뜻이지요. 따라서  Off로 해 놓으면 "더 무식한 방법"  이지요. 그
런데 이 방법을 쓰려면 여러분 컴퓨터의 시간이  항상 잘 맞아야 된다는 보장
이 있어야 합니다. 밧데리 나쁜 컴퓨터들은 가끔  시간이 틀릴텐데 그러면 문
제가 생길수도 있겠지요.  지금은 워낙에 간단한 경우라 Off로 해놔도  별 지
장 없을  듯합니다. 앞으로 여러분 스스로  짜는 프로그램이 점점  더 커져서
컴파일 시간이 길어지면 "On" 으로 바꾸는 문제를 염두에 두어야 합니다.

        이제 보내 드린 파일들을 컴파일 하는  순서를 정리하면 다음과 같습
니다. (보내  드린 파일(menu.arj)의 압축을  풀면 파일이 많이 있는데  전부
실행 시키는데 필요한 것이니 가급적이면 따로  디랙토리를 만들어서 그 안에
이 파일들을 전부 보관하세요)

        터보 C에 들어가서
 

        1. [PROJECT] [Project name]를 선택하고 "menu.arj"를 고른다.
        2. [Ctrl + F9]를 동시에 눌러 컴파일 한다.

이와 같이 간단히 하면 됩니다.

***********************************************************************
<2> 소스 분석및 문제
***********************************************************************
        menu.exe를 구석구석 실행해 보세요. 제가  여러분들의 소스 분석 능
력 향상을 위해서  여러가지 잡다한 프로그램을 실었는데, 지금까지  배운 것
을 전부 활용하면,  프로그램을 분석할 수 있을 겁니다. 파일에  관한 부분은
앞으로 나올 것이므로 예습삼아 읽어 보세요.

        다음의 숙제를  해 보시면서 프로그램을  직접 읽고 이해 하는  것이 
이번 강좌의 내용입니다.

        프로그램을 분석하는 요령은, 먼저 "실행의  결과"를 보고 내용을 짐
작한 후 분석을 하세요. 훨씬 쉬울 것입니다.  예를 들면, 산토끼를 연주하는
프로그램이 있는데, 그걸  직접 들어 본후 프로그램을 읽어 보면,  아마 거의
짐작이 될겁니다.

[349쪽] 18줄 부터 시작되는 "float  Data[8][12] = {" 이하 부분은 [546쪽]
음계의 주파수표를 사용한 것입니다.

[349쪽] 29줄의 char *dong_data  는 char형의 1차원 포인터 이기 때문에
"스트링  하나"를 취급할 수 있는 걸 알  겁니다. 이것은 계명을 "솔솔라라"
따위 대신에 영어로 "GGAA"로 적은 것입니다.

<숙제> [349쪽]의 30줄의 index[]  변수가 의미 하는  것은 무엇인가요 ?
<숙제> [349쪽] 39줄 부터 switch 문이 시작  되는데, 보통의 경우라면 
각 case : 문  다음에 "break" 를 쓰는게  일반적인데 여기서는 48줄에만 하나
를 쓰고 있습니다. 이 의도는 무엇인가요 ?

<숙제>  [349쪽] 40줄의 continue를 만나면  어디로 가나요 ?
이 40줄 때문에 [349쪽]의 5,6줄  같은 설명을 했습니다. 기능이 무엇입니까 ?

<숙제>  [349쪽] 52줄, 53줄의  증가(++)dml 의미는 각각 무엇입니까 ?

<숙제>   [349쪽] 62줄  에는 "240." 이라는 부분이  있습니다.
         점(.)을 찍은 이유는 무엇 입니까 ?

<숙제>  역시  [349쪽] 62줄에 캐스트(cast)  연산자 "()"를 확인하세요.

<숙제> 현재 무조건 한 박자 씩만 연주 하게  되 있는데, 박자 길이도 임의로
연주 하도록 바꿔 보세요.

<숙제> vocabulary를 사용하려면 "조합형 한글을 미리  올려야 합니다" 이 화
면은 정말 보기 싫게 되 있는데, box및  화면 구성을 칼라를 이용하여 이쁘게
고쳐 보세요.

<숙제> vocabulary의 소스를  읽고  어떤 키를 눌러야 총알이  나가는지 알아
보세요.

<숙제> vocabulary의  소스를 읽고  's'  와 'd' 키를 치면  어떤 일을하는지
알아 보세요.

<숙제> vocabulary는 같이 보내 드리는 a.dic  부터 z.dic의 사전을 이용하여
그 안의 단어를 읽습니다. 이 파일들은 텍스트  파일이므로 본인이 원하는 단
어를 첨가 해 보세요.

<숙제> fighting 의 소스를 읽고 이 프로그램이  하는 일이 무엇인지 알아 보
세요. 그리고 최고 기록이 몇초나 되는지 자신 있는 분은 보내 보세요.
**************************< 끝 마치며 >********************************
오늘 내드린  숙제는 양이 너무 작은지  많은지 잘 모르겠습니다.  열심히 해
보세요. 강좌가 어느덧 반이 넘어갔기 때문에 여러분  자신의 "작품"을 짤 준
비를 해야 합니다.
***********************************************************************

 


profile
외뿔공룡 2008.10.11 12:36
감사합니다.
profile
컴쟁이 2013.01.29 00:14
자료감사합니다
profile
시나브로69 2017.06.24 15:54
좋은 자료 감사합니다.
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
696 ECAD 아무거나 회로부품에 Simulation Model 연결하기 무료 아크마 2018-01-06 0 189
695 ECAD 아무거나 Altium Designer V9 datasheet 무료 아크마 2018-01-06 0 132
694 ECAD 아무거나 Altium을 활용한 PCB CAD 툴의 운용 방법 무료 아크마 2018-01-06 0 163
693 ECAD 아무거나 Altium Xspice 한글 매뉴얼 무료 아크마 2018-01-06 0 226
692 ECAD 아무거나 XSpice Simulation Model 생성관련 자료 무료 아크마 2018-01-06 0 86
691 PADS PADS를 이용하여 Rigid-flex PCB를 설계하려고 하는데요 질문 드립니다. [1] 무료 당근1 2017-08-14 0 277
690 Allego & OrCAD orcad16.0 필요합니다 64비트용 무료 내마음의일식 2017-06-27 0 357
689 Allego & OrCAD orcad 16.0 설치 주소입니다. [2] 무료 Xorcad 2017-05-16 0 1330
688 Allego & OrCAD OrCAD PCB Editor 프로그램 질문드립니다. [1] 무료 kmgn0 2017-05-16 0 286
687 ECAD 아무거나 해외 아트워크 무료 공공 2017-04-21 0 226
686 PADS netlist 생성시 에러 [1] 무료 바다새 2017-04-18 0 407
685 ECAD 아무거나 PCB 설계시 규격관련 참조자료입니다. [4] 무료 선녀와남후꾼 2016-06-16 0 381
684 PADS 공부 시작하려고하는데 pads9.5버전좀 보내주세요! [2] 무료 bbii0902 2017-03-24 0 423
683 Allego & OrCAD OrCAD Capture "N-CH MosFET" 라이브러리 찾습니다. [3] 무료 내일의나 2017-03-07 0 226
682 PADS PADS 업체에서 크렉버젼 실사... [6] 무료 단순한바보 2017-02-21 0 1517
681 Allego & OrCAD Negative Planes에 대해 질문 드립니다. [2] 무료 Astro 2017-02-14 0 163
680 PADS Macbook사용하고 있습니다. [1] 무료 어린왕자.. 2017-02-14 0 160
679 PADS win 8.1에서 설치 시 install.txt가 안생겨요 [1] 무료 어린왕자.. 2017-02-14 0 101
678 PADS pads layout 질문 [1] 무료 YEJUN 2017-02-10 0 182
677 ECAD 아무거나 Artwork [1] 무료 YEJUN 2017-02-10 0 126
  • 의복에만 마음이 쏠리는 것은 마음과 인격이 잠든 탓이다.
    - 에머슨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.