Lecture 4 C 프로그램 구성의 기본 C 프로그램에서 이름짓기 C 프로그램에서 이름 충돌/이름 재사용.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

주사위를 이용한 땅 따먹기 청솔초 영재학급 4 학년 장 택 민 목차 1. 제작 동기와 원리 2. 필요한 도구 3. 게임규칙 설명 4. 게임 분석 및 전략 1. 제작 동기와 원리 2. 필요한 도구 3. 게임규칙 설명 4. 게임 분석 및 전략.
Chapter 7 서브프로그램. Introduction 서브 프로그램의 명시 형식 인자전달 방법 ▫ Call by value ▫ Call by value result ▫ Call by reference ▫ Call by name 구현 방법 2.
금속의 종류와 액체의 성질에 따른 금속의 부식 창의적 산출물 연구 보고서 부명 초등 학교 임재윤 지도교사 노지은선생님
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
에서 ( 탭 – [인기 다운로드 | 모든 다운로드] ) Visual Studio 2015
2007 1학기 10 함수 활용.
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
Autokey Cipher 자동키 암호 Department of Cyber Security / 박건주.
6장. printf와 scanf 함수에 대한 고찰
제4장 블록 및 유효범위 Reading Chap. 5 © 숙대 창병모.
25장. 메모리 관리와 동적 할당.
제5장 기초 의미론 (Basic Semantics)
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
제 3장. C보다 나은 C++ II.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
영원한 복음.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
13. 포인터와 배열! 함께 이해하기.
Chapter 10 함수 기본.
2015. 인문소양교육.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
제 6장 함수 Hello!! C 언어 강성호 김학배 최우영.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
C 3장. 변수와 데이터형 #include <stdio.h> int main(void) { int num;
19. 함수 포인터와 void 포인터.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제어문 & 반복문 C스터디 2주차.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 09. C언어의 핵심! 함수!
CHAP 2:순환.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
Chapter 08. 함수.
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
18장. 다차원 배열 그리고 포인터.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
식물의 성장조건 만 든 이 : 김지혁 지도교사 : 김경순선생님.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
어서와 C언어는 처음이지 제16장.
argc, argv 의 사용방법 #include <stdio.h>
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
17장. 포인터의 포인터.
C.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
13. 포인터와 배열! 함께 이해하기.
11장. 1차원 배열.
Presentation transcript:

Lecture 4 C 프로그램 구성의 기본 C 프로그램에서 이름짓기 C 프로그램에서 이름 충돌/이름 재사용

C 프로그램 must be a command. (why?) looks like: #include <stdio.h> main() { int x=0; /* I like zero */ printf(“hello x is %d”, x); }

C 프로그램 구성 c program = declaration(s) + command declarations: 이름짓기 지은 이름들을 이용해서 명령문을 구성 이 명령문부분은 따로 main이라는 이름의 묶음안에 넣는다

이름짓기 Declarations (1/3) 변수 variables: 메모리에 이름짓기 사용할 메모리에 이름붙이기 그 메모리에 보관될 값들의 타입을 정하기 프로시져 procedure: 명령문에 이름짓기 명령문 묶음에 이름붙이기 프로시져의 인자값과 결과값의 타입을 정하기 타입 types: 타입 이름 짖기 복잡한 타입에 하나의 이름을 짖는다

이름 짓기 declarations (2/2) 프로시져 procedures 변수 variables int add(int x) { char y; x = 0; y = ‘c’; 프로시져 procedures int add(int x) { return x+1; } int x = 0; x = add(10);

C 프로그램(decls + cmd) 예 #include <stdio.h> int s; int add(int x) { return x+1;} void main() { int y = 10; s = 0; y = y + add(s); printf(“y+s+1 is %d”, y+add(s)); }

이름짖기 문제: 이름충돌 (1/3) #include <stdio.h> int s; int add(int x) { return x+1;} void main() { int y = 10; s = 0; y = y + add(s); printf(“y+s+1 is %d”, y+add(s)); }

이름짖기 문제: 이름충돌 (2/3) #include <stdio.h> int s; int add(int y) { return x+1;} void main() { int y = 10; s = 0; y = y + add(s); printf(“y+s+1 is %d”, y+add(s)); }

이름짖기 문제: 이름충돌 (3/3) #include <stdio.h> int s; int add(int x) { return x+1;} void main() { int add = 10; s = 0; add = add + add(s); printf(“y+s+1 is %d”, y+add(s)); }

이름짖기 문제의 해결 (1/4) 이름의 유효범위(scope)가 정해져 있슴 유효범위을 제한하는 방법 유효범위(box) 만들기: { int x; … } f(int x) {…}

이름짖기 문제의 해결 (2/4) int x int y x x y int x int y x y x

이름짖기 문제: 이름충돌 (2/3) #include <stdio.h> int s; int add(int y) { return x+1;} void main() { int y = 10; s = 0; y = y + add(s); printf(“y+s+1 is %d”, y+add(s)); }

이름짖기 문제: 이름충돌 (3/3) #include <stdio.h> int s; int add(int x) { return x+1;} void main() { int add = 10; s = 0; add = add + add(s); printf(“y+s+1 is %d”, y+add(s)); }