untitled

Similar documents
chap7.key


K&R2 Reference Manual 번역본

Microsoft PowerPoint - chap6 [호환 모드]

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

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

Standard C Library.hwp

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

강의10

歯7장.PDF

chap7.PDF

Microsoft PowerPoint - 11_C_Language_C_Standard_Library

PowerPoint 프레젠테이션

chap10.PDF

본 강의에 들어가기 전

11장 포인터

Computer Programming (2008 Fall)

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

Algorithms

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

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

C++-¿Ïº®Çؼ³10Àå

13 주차문자열의표현과입출력

Microsoft PowerPoint - chap-12.pptx

PA for SWE2007

vi 사용법

Microsoft PowerPoint - 7_배열_문자열

PA for SWE2007

이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하고있다. 이번장에서는 C 에서의문자열처리방법에대하여자세히살펴볼것입니다. 2

Microsoft PowerPoint - ch04 - 함수 pm0130

컴파일러

歯9장.PDF

6주차.key

Microsoft PowerPoint - Chapter8.pptx

제1장 Unix란 무엇인가?

/chroot/lib/ /chroot/etc/

문서의 제목 나눔명조R, 40pt

Microsoft PowerPoint - 제11강 파일 처리

11장 포인터

11장 포인터

<4D F736F F F696E74202D D20B9AEC0DABFAD2C20BDBAC6AEB8B2B0FA20C6C4C0CF20C0D4C3E2B7C2>

Microsoft PowerPoint - chap12-고급기능.pptx

11장 포인터

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

PA0 for SSE2033

<4D F736F F F696E74202D20C1A632B0AD20BAAFBCF6BFCD20C0DAB7E12C20C0FCC3B3B8AEBFCD20C0D4C3E2B7C2>

Microsoft PowerPoint - 제9강 문자열

11장 포인터

11장 포인터

Chap04(Signals and Sessions).PDF

ch13

11장 포인터

Microsoft PowerPoint - Chapter14_17.pptx

Microsoft PowerPoint - Lesson14.pptx

Microsoft PowerPoint - Lesson14.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

5.스택(강의자료).key

Microsoft PowerPoint - ch07 - 포인터 pm0415


교육지원 IT시스템 선진화

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - [CPI16] Lecture 10 - 문자열.pptx

<4D F736F F F696E74202D20C1A63132C0E520B9AEC0DABFCD20B9AEC0DABFAD>

1장. 유닉스 시스템 프로그래밍 개요

제1장 Unix란 무엇인가?

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

쉽게풀어쓴 C 언어 Express 제 12 장문자와문자열 이번장에서학습할내용 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 인간은문자를사용하여정보를표현하므로문자열은프로그램에서중요한위치를차지하

商用

PowerPoint 프레젠테이션

10김묘선

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft Word - Network Programming_NewVersion_01_.docx

Microsoft PowerPoint - 제12장 문자열(강의)

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

EA0015: 컴파일러

PowerPoint 프레젠테이션

Microsoft PowerPoint Lec05.ppt [호환 모드]

PowerPoint 프레젠테이션

New features in C99 (1) - 인쇄용

제7장 C 표준 파일 입출력

고급 프로그래밍 설계

<4D F736F F F696E74202D D20B9AEC0DABFAD2C20BDBAC6AEB8B2B0FA20C6C4C0CF20C0D4C3E2B7C2>

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

제7장 C 표준 파일 입출력

untitled

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드]

C# Programming Guide - Types

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>


슬라이드 1

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

PowerPoint Template

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

Chapter_02-3_NativeApp

PowerPoint 프레젠테이션

슬라이드 1

제12장 파일 입출력

Transcription:

1 hamks@dongguk.ac.kr (goal) (abstraction), (modularity), (interface) (efficient) (robust) C Unix C Unix (operating system) (network) (compiler) (machine architecture) 1 2 3 4 5 6 7 8 9 10

ANSI C Systems programming pointer (address) arithmetic all functions are call-by-value simple 2-level scope structure no I/O or memory mgmt facilities (provided by libraries) History BCPL B C K&R C ANSI C 1960 1970 1972 1978 1988 Add_Box_To_Picture (Box,Picture,Position) {............ Drawing_Program() {... Add_Box_to_Picture(B,P,Pos)...

.h.c

#ifndef STACK_INCLUDED #define STACK_INCLUDED typedef struct Stack_T *Stack_T; extern Stack_T Stack_new(void); extern int Stack_empty(Stack_T stk); extern void Stack_push(Stack_T stk, void *x); extern void *Stack_pop(Stack_T stk); extern void Stack_free(Stack_T *stk); /* NULL Stack_T Stack_T* Stack_pop. */ #endif Stack_T Stack_T Stack_ #ifndef STACK_INCLUDED #include <assert.h> #include <stdlib.h> #include "stack.h" #define T Stack_T struct T { void *val; T next; ; T Stack_new(void) { T stk = calloc(1, sizeof *stk); assert(stk); return stk; int Stack_empty(T stk) { assert(stk); return stk->next == NULL; void Stack_push(T stk, void *x) { T t = malloc(sizeof *t); assert(t); assert(stk); t->val = x; t->next = stk->next; stk->next = t; void *Stack_pop(T stk) { void *x; T s; assert(stk && stk->next); x = stk->next->val; s = stk->next; stk->next = stk->next->next; free(s); return x; void Stack_free(T *stk) { T s; assert(stk && *stk); for ( ; *stk; *stk = s) { s = (*stk)->next; free(*stk); #include <stdio.h> #include <stdlib.h> #include "stack.h" int main(int argc, char *argv[]) { int i; Stack_T s = Stack_new(); for (i = 1; i < argc; i++) Stack_push(s, argv[i]); while (!Stack_empty(s)) printf("%s\n", Stack_pop(s)); Stack_free(&s); return EXIT_SUCCESS;

assert(e) int Stack_empty(T stk){ assert(stk); return stk->next == NULL; assert.h (): #ifdef NDEBUG #define assert(e) ((void)0) #else #define assert(e) ((void)((e) (fprintf(stderr, \ "assertion failed: file %s, line %d\n", \ FILE, LINE ), abort(), 0))) #endif gcc -DNDEBUG foo.c... gcc -c stack.c -o stack.o ar -rs mylib.a stack.o gcc user.c mylib.a nm -s mylib.a

assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h assertions character mappings error numbers metrics for floating types metrics for integral types locale specifics math functions non-local jumps signal handling variable length argument lists standard definitions standard I/O standard library functions string functions date/time functions stdlib.h atof, atoi, strtod, rand, qsort, getenv, calloc, malloc, realloc, free, abort, exit,... string.h strcmp, strncmp, strcpy, strncpy strcat, strncat, strchr, strrchr, strlen,... memcpy, memmove, memcmp, memset, memchr ctype.h isdigit, isalpha, isspace, ispunct, isupper, islower, toupper, tolower,... math.h sin, cos, tan, asin, acos, atan, atan2, ceil, floor, fabs sinh, cosh, tanh, exp, log, log10, pow, sqrt, stdarg.h va_list, va_start, va_arg, va_end setjmp.h jmp_buf, setjmp, longjmp

stdio.h FILE* extern FILE *stdin, *stdout, *stderr; extern int fclose(file *); extern FILE *fopen(const char *, const char *); extern int fprintf(file *, const char *,...); extern int fscanf(file *, const char *,...); extern int printf(const char *,...); extern int scanf(const char *,...); extern int sprintf(char *, const char *,...); extern int sscanf(const char *, const char *,...); extern int fgetc(file *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(file *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern int feof(file *); getword, elementcount i arrayindex PI, MAXLINE printword, PrintWord, print_word Strset_T, Strset_add

alpha = angle(p1, p2, p3); beta = angle(p1, p2, p3); gamma = angle(p1, p2, p3); if else if else then else assert(0) continue break return i = i + 1; /* i 1 */

0 0xffffffff char *string = hello ; int i; char *f(void) { char *p; i = 8; p = malloc(i) ; return p; 0 0xffffffff 0 int i; char *f(void) { char *p; i = 8; p = malloc(i) ; return p; 0xffffffff

0 int i; char *f(void) { char *p; i = 8; p = malloc(i) ; return p; 0xffffffff