PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap12-고급기능.pptx

untitled

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

C 언어 프로그래밊 과제 풀이

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

OCW_C언어 기초

C 프로그래밊 개요

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - chap05-제어문.pptx

PowerPoint Presentation

BMP 파일 처리

untitled

OCW_C언어 기초

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-1Array.ppt

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - chap06-2pointer.ppt

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - ch07 - 포인터 pm0415

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap08-1 [호환 모드]

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

Microsoft PowerPoint - chap-09.pptx

K&R2 Reference Manual 번역본

슬라이드 1

Infinity(∞) Strategy

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap11-포인터의활용.pptx

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

PowerPoint 프레젠테이션

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

11장 포인터

Microsoft PowerPoint - 제11장 포인터(강의)

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

C 프로그램의 기본

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

ch15

Microsoft PowerPoint - chap06-8 [호환 모드]

중간고사

Microsoft PowerPoint - chap06-8.ppt

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Microsoft PowerPoint - chap03-변수와데이터형.pptx

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

untitled

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - ch07 - 포인터 pm0415

11장 포인터

Data Structure

Microsoft PowerPoint - chap04-연산자.pptx


<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

PowerPoint 프레젠테이션

02장.배열과 클래스

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6>

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

본 강의에 들어가기 전

Microsoft PowerPoint - Chapter 1-rev

Microsoft PowerPoint - chap-11.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - 05장(함수) [호환 모드]

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - ch 전처리기, 다중 소스파일 pm1015

Microsoft PowerPoint - Chapter_08.pptx

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Visual Basic 반복문

KNK_C_05_Pointers_Arrays_structures_summary_v02

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 04_C_Language_Function

설계란 무엇인가?

PowerPoint 프레젠테이션

PowerPoint Template

ABC 6장

컴파일러

Microsoft PowerPoint - Chapter8.pptx

8장. 포인터

설계란 무엇인가?

슬라이드 1

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Transcription:

Chapter 15 고급프로그램을 만들기위한 C...

1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어

1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수

[ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include <stdio.h> 02 03 int main(int argc, char* argv[]) 04 { 05 int i; 06 07 printf(" argc 매개변수 = = > %d \n", argc); 08 09 for(i=0; i<argc; i++) 10 printf(" argv[%d] 매개변수 = = > %s \n", i, argv[i]); 11 } --- 매개변수를지정한다. --- 매개변수의개수를출력한다. --- 매개변수개수만큼반복하며매개변수의내용을출력한다.

[ 응용 14-2] main( ) 함수에매개변수를사용한예 2 01 #include <stdio.h> 02 03 int main(int argc, char* argv[]) 04 { 05 char str[200]; 06 FILE *rfp; 07 08 if ( 1!= 2) 09 { 10 printf("\n -- 매개변수를 1 개사용하세요 --\n"); 11 return 0; 12 } 13 14 fopen_s(&rfp, 2, "r"); 15 16 for( ;; ) 17 { 18 fgets(str, 199, rfp); 19 20 if (feof(rfp)) 21 break; --- 매개변수가하나가아니면메시지를출력한후프로그램을종료한다. --- 첫번째매개변수로넘어온것을읽기모드로연다. --- 무한루프다. ------- 파일의내용을한줄읽어들인다. ------- 파일의끝이면무한루프를종료한다.

[ 응용 14-2] main( ) 함수에매개변수를사용한예 2 22 23 printf("%s", str); 24 } 25 26 fclose(rfp); 27 } -------- 읽을내용을출력한다. --- 파일을닫는다.

2. 헤더파일 헤더파일의이해 *.h라는확장자를사용하는파일 파일에는함수의프로토타입이선언되어있으며구조체등의데이터구조가정의되어있음 예 ) printf( ) 함수 : 프로그램의맨첫줄에 #include <stdio.h> 를썼기때문에 printf( ) 함수를만든적이없지만화면에무언가를출력해주는역할을수행해옴

2. 헤더파일 헤더파일과관련된함수의종류 사용자가만드는헤더파일 사용자가만든헤더파일의이름이 myheader.h 일경우

2. 헤더파일 헤더파일을만드는방법 01 Visual Studio 를실행한뒤 14_3 이라는이름으로프로젝트를생성하고 14_3.c 파일을 생성한다. 02 왼쪽솔루션탐색기의 [14_3] [ 헤더파일 ] 에서마우스오른쪽버튼을클릭한후 [ 추가 (D)] [ 새항목 ] 을선택한다.

2. 헤더파일 03 [ 헤더파일 ] 을선택하고이름에 myheader.h 를입력한후 < 추가 > 를클릭한다. 04 헤더파일의내용에는다음한줄을입력한다. 함수를선언하는것이다. 05 C 소스파일 (14_3.c) 은다음과같이코딩한다.

[ 기본 14-3] 사용자정의헤더파일의사용예 01 #include <stdio.h> 02 03 #include "myheader.h" 04 05 int main( ) 06 { 07 func(10); 08 } 09 10 void func(int num) 11 { 12 printf("%d\n", num); 13 } --- 사용자가만든헤더파일을포함시킨다. --- 함수를호출한다. ---func( ) 함수의내용을정의한다.

2. 헤더파일 하나의파일을여러개의파일로분리하기 파일분리과정 01 Visual Studio를실행한다음 14_4 라는이름으로프로젝트를생성한다. 솔루션탐색기의 [14_4] [ 헤더파일 ] 에서마우스오른쪽버튼을클릭한후 [ 추가 ] [ 새항목 ] 을누른다. 02 중간창에서 [ 헤더파일 ] 을선택하고이름에 f unc.h 를입력한후 < 추가 > 를클릭한다. 03 이번에는솔루션탐색기의 [14_4] [ 소스파일 ] 에서마우스오른쪽버튼을클릭한후 [ 추가 ] [ 새항목 ] 을선택한다. 04 중간창에서 [C++ 파일 ] 을선택하고이름에 main.c 를입력한후 < 추가 > 를클릭한다. 05 같은방식으로 func1.c 와 func2.c 를추가. 최종적으로다음과같이파일 4개가추가됨.

2. 헤더파일

[ 기본 14-4] 함수별로파일을분리하는예 func.h 01 #include <stdio.h> 02 03 void func1( ) ; 04 void func2( ) ; ---func1(), func2() 함수의프로토타입을선언한다. main.c 01 #include "func.h" 02 03 void main( ) 04 { 05 func1( ); 06 func2( ); 07 } --- 직접만든헤더파일을포함시킨다. ---func1(), fun2() 함수를호출한다.

[ 기본 14-4] 함수별로파일을분리하는예 func1.c 01 #include "func.h" 02 03 void func1( ) 04 { 05 printf("func1( ) 함수를실행합니다. \n"); 06 } --- 직접만든헤더파일을포함시킨다. ---func1() 함수내용을정의한다. func2.c 01 #include "func.h" 02 03 void func2( ) 04 { 05 printf("func2( ) 함수를실행합니다. \n"); 06 } --- 직접만든헤더파일을포함시킨다. ---func2() 함수내용을정의한다.

3. 전처리문과예약어 전처리문 실제컴파일전에미리처리되는문장 기존의방대한소스를건드리지않은상태에서부분적인컴파일수행 소스의시작부분에위치하며, # 으로시작 #include, #define, #ifdef, #undef 등 #define 문 소스코드에사용할숫자나문자열, 함수의이름이너무길거나복잡할때한눈에파악하도록쉬운기호로표현함 예 ) 원주율표시 - 3.1415926535

[ 기본 14-5] #define 문의사용예 01 #include <stdio.h> 02 03 #define PI 3.1415926535 04 #define STR " 원의면적을계산했습니다.\n" 05 #define END_MSG printf(" 프로그램이종료되었습니다. \n\n") 06 07 void main( ) 08 { 09 printf(" 반지름이 10 인원의면적은 = = > %10.5f \n", 10*10*PI); 10 11 printf(str); 12 13 END_MSG; 14 } ---상수를 PI로정의한다. ---문자열을 STR로정의한다. ---함수를 END_MSG로정의한다. ---정의한 PI를사용한다. ---정의한 STR을사용한다. ---정의한 END_MSG를사용한다.

3. 전처리문과예약어

3. 전처리문과예약어

3. 전처리문과예약어 예약어 특별한기능을수행하도록프로그래밍언어에서미리정의한것 변수나함수이름에사용할수없음 컴파일러는예약어를변수키워드로인식하므로변수역할을하지못함 const 예약어 #define 과비슷한기능 const 로변수를선언하면해당변수는변수로서의역할을하는것이아니라상수역할을함

3. 전처리문과예약어 const 의사용방법 const 를사용한위의예를 #define 으로바꿈 static 예약어 처음설정된값을초기화하지않고계속유지하게함

[ 기본 14-6] static 예약어의사용예 01 #include <stdio.h> 02 03 void myfunc( ); 04 05 void main( ) 06 { 07 myfunc( ); 08 myfunc( ); 09 } 10 11 void myfunc( ) 12 { 13 static int a = 0; 14 15 a = a + 100; 16 printf("a 의값 = = > %d\n", a); 17 } ---myfunc( ) 함수의프로토타입을선언한다. ---myfunc( ) 함수를두번호출한다. ---static 예약어로 a 변수를선언하고초기화한다. ---a에 100을증가시킨후출력한다.

3. 전처리문과예약어 extern 예약어 다른소스파일에선언된전역변수를현재의소스파일에가져와서사용하고싶을때사용함

[ 기본 14-7] extern 예약어의사용예 1 main.c 01 #include <stdio.h> 02 03 void func( ); 04 05 int a; 06 07 void main( ) 08 { 09 a = 100; 10 11 func( ); 12 } ---func( ) 함수의프로토타입을선언한다. ---전역변수 a를선언한다. ---전역변수에값을대입한다. ---함수를호출한다.

[ 기본 14-7] extern 예약어의사용예 1 func.c 01 #include <stdio.h> 02 03 extern int a; 04 05 void func( ) 06 { 07 printf("extern int a 값 = = > %d\n", a); 08 } --- 변수 a 를외부변수로선언한다. --- 변수 a 값을출력한다.

[ 응용 14-8] extern 예약어의사용예 2 main.c 01 #include <stdio.h> 02 03 void exchange( ); 04 05 int a, b; 06 07 int main( ) 08 { 09 printf("a 의값을입력 : "); 10 scanf_s("%d", &a); 11 printf("b 의값을입력 : "); 12 scanf_s("%d", &b); 13 14 1 ( ); 15 16 printf("\n 바뀐값 a 는 %d, b 는 %d \n", a, b); 17 } ---exchange( ) 함수의프로토타입을선언한다. ---전역변수 a와 b를선언한다. ---전역변수 a에값을입력한다. ---전역변수 b에값을입력한다. ---함수를호출한다. ---결과를출력한다.

[ 응용 14-8] extern 예약어의사용예 2 exchange.c 01 2 02 03 void exchange( ) 04 { 05 int tmp; 06 07 tmp = a; 08 a = b; 09 b = tmp; 10 } --- 변수 a, b 를외부변수로선언한다. --- 두값을교환한다.

[ 예제모음 37] 텍스트파일복사

[ 예제모음 37] 텍스트파일복사 01 #include <stdio.h> 02 03 int main(int argc, char* argv[]) 04 { 05 06 char str[200]; 07 FILE *rfp; 08 FILE *wfp; 09 10 if (argc!= 3) 11 { 12 printf("\n -- 매개변수를 2 개사용하세요 --\n"); 13 return 0; 14 } 15 16 fopen_s(&rfp, argv[1], "r"); 17 fopen_s(&wfp, argv[2], "w"); 18 --- 한행을최대 199 자로제한한다. --- 읽기용포인터와쓰기용포인터변수를선언한다. --- 매개변수가두개가아닌경우프로그램을종료한다. --- 읽기모드의파일을연다. --- 쓰기모드의파일을연다.

[ 예제모음 37] 텍스트파일복사 19 for( ;; ) 20 { 21 fgets(str, 199, rfp); 22 23 if (feof(rfp)) 24 break; 25 26 fputs(str, wfp); 27 } 28 29 fclose(rfp); 30 fclose(wfp); 31 } ---- 무한루프다. ------- 원본파일에서한행을읽어온다. ------- 만약파일의끝이라면 ( 더읽을행이없으면 ) for 문을종료한다. ------- 읽은행을대상파일에쓴다. --- 파일을닫는다.

[ 예제모음 38] static 예약어를활용한구구단출력

[ 예제모음 38] static 예약어를활용한구구단출력 01 #include <stdio.h> 02 03 void gugu( ) 04 { 05 static int dan=1; 06 int i; 07 08 dan++; 09 10 printf("\n\n ** %d 단 **\n", dan); 11 for (i=1; i<=9; i++) 12 { 13 printf("%2d X %2d= %2d \n", dan, i, dan*i); 14 } 15 } 16 17 int main( ) 18 { 19 int i; 20 21 for(i=0; i<8 ; i++) 22 gugu( ); 23 } ---static 예약어로 dan 변수를선언하고초기화한다. ---단을하나씩증가시킨다. ---제목을출력한다. ---각단의구구단을출력한다. ---8번반복해서 gugu( ) 함수를호출한다.

[15 장요약 ] 1 main( ) 함수의매개변수 ➊ 일반함수뿐만아니라 main( ) 함수에도매개변수를사용할수있다. ➋ 실행파일에매개변수를넘겨주기위해서는 main( ) 함수의매개변수를 main(int argc,char* argv[ ]) 와같은형식으로지정해야한다. 2 헤더파일 ➊ C의제일상단에들어가며확장명이 *.h인파일을말한다. ➋ 함수의프로토타입, 구조체등의데이터구조가선언되어있다. ➌ 자주사용하는헤더파일은다음과같다. ➍ 컴파일러가제공해주는헤더파일은 < > 로묶어주고, 사용자가작성한헤더파일은 로묶어준다.

[15 장요약 ] 3 전처리문전처리문이란실제컴파일전에미리처리되는문장으로기존에있는방대한소스코드를건드리지않은상태에서부분적인컴파일을수행한다. 소스코드의맨처음에 # 으로시작한다. 전처리문의종류로는 #include, #define, #ifdef, #undef 등이있다. 4 한파일을여러개의파일로분리소스가너무길어지면관리하기가힘들어지므로여러개의파일로분리해서프로그램을작성한후빌드하는것이좋다.

[15 장요약 ]

[15 장요약 ] 5 예약어 ➊ 예약어란특별한기능을수행하도록프로그래밍언어에서미리정의한것으로, 변수나함수이름으로도사용할수없는단어다. 컴파일러는예약어를변수로인식하지않고키워드로인식한다. ➋ const, static, extern 예약어에대해서는다음표를참조하라.