반응형

전체 글 2942

8. 변수의 선언과 초기화

변수의 선언과 초기화 다루는 내용 - 변수(와 상수)의 선언과 정의, 초기화 형식은 프로그램에서 사용할 데이터 인스턴스들에 대한 추상화일 뿐 실제 데이터를 보관할 수 있는 구체화된 인스턴스는 아니다. 추상화된 형식을 구체화를 통해 인스턴스화하는 것이 변수이다. 즉, 데이터를 위해 메모리를 할당받아 값을 보관하고 사용할 수 있는 것이 변수이다. 1. 변수(와 상수)의 선언과 정의, 초기화 변수(와 상수)의 경우는 선언을 하면 값이 default값으로 정의된다. 전역 변수와 정적(static) 변수의 경우는 0으로 지역 변수의 경우는 쓰레기 값(garbage value)이 default값이다. 만약, 다른 값으로 정의를 하고 싶으면 선언과 동시에 초기화 구문을 사용하면 된다. 기본 형식의 변수의 선언 및 초..

7.사용자 정의 형식 - 구조체, 공용체, 열거형

7.사용자 정의 형식 - 구조체, 공용체, 열거형 다루는 내용 - 구조체 - 공용체 - 열거형 - typedef - Byte Order 사용자 정의 형식은 프로그램 개발자가 구현 목적에 따라 정의하는 형식을 의미한다. 사용자 정의 형식(UDT) 구조체(struct) 멤버 사이즈의 합 + padding 공용체(union) 제일 큰 멤버 사이즈 bytes 1. 구조체 구조체는 여러 개의 멤버를 하나로 묶어 사용하는 형식이다. 가령, 학생 관리 프로그램에서 한 명의 학생의 데이터로 학번, 이름, 학년 등을 관리해야 한다고 할 때 학번들을 따로 관리하고, 이름을 따로 관리하고 학년을 따로 관리하는 것은 비효율적인 관리가 될 수 있다. 학생이라는 형식을 정의를 해서 학생들을 관리를 하면 좀 더 나을 수 있을 것이..

6.메커니즘 형식 - 배열, 포인터

6.메커니즘 형식 - 배열, 포인터 type에 대한 번역을 형식으로 표현하고 있으니 혼돈하지 마시기 바랍니다. 이와 같이 쓰는 이유는 MSDN에 한글 메뉴얼에서 형식이라는 용어를 사용을 하고 있어 익숙해 지는 것이 Visaul Studio 환경에서 학습을 하는데 도움이 될 것이라는 소견에서 쓰는 것입니다. 다루는 내용 - 배열 형식 - 포인터 형식 - value 형식 vs reference 형식 이 책에서 배열과 포인터를 메커니즘 형식이라고 분류한 이유는 기본 형식은 형식 예약어와 변수명만을 가지고 변수 선언을 할 수 있는데 메커니즘 형식은 이 외에 배열 지시 연산자와 원소의 개수가 필요로 하고 이는 사용자가 정하게 되어 실제 할당하는 크기가 다르게 된다. 또한, 포인터는 포인터 지시 연산자와 변수명을 ..

5.기본 형식 - 문자, 정수, 실수형

기본 형식 - 문자, 정수, 실수형 다루는 내용 - 문자형 - ASCII CODE - 정수형 - 실수형 - float형의 메모리에 저장 방식 기본 형식 char, unsigned char, signed char 1 byte short, unsigned short 2 bytes int, unsigned int 2 or 4 bytes long, unsigned long 4 bytes float 4 bytes double 8 bytes long double 8 bytes 1. 문자형 문자형은 1개의 문자를 표현(및 저장)할 수 있는 형식이다. 여러개의 문자를 표현하기 위해서는 메커니즘 형식인 배열(혹은 포인터)을 사용해야 한다. 문자형 char, signed char -127 ~ 128 unsigned cha..

4. 형식(type -자료형)

형식(type -자료형) 다루는 내용 - 형식의 종류 - 형식에 따른 메모리 1. 형식이란? 프로그래밍 언어에 있어서 형식은 프로그램에 사용될 데이터의 종류에 따라 메모리의 크기에 대한 약속이다. 형식은 프로그램 코드상의 표현값과 메모리에 저장되는 값에 대한 약속이다. 형식은 데이터 인스턴스를 만들기 위한 도구이다. 2. 형식의 종류 형식은 크게 예약어로 제공되는 기본 형식과 메커니즘을 통해 변수를 선언할 수 있는 형식 그리고, 사용자 정의 형식으로 나눌 수 있다. 기본 형식 예약어로 제공되는 기본 형식은 프로그램 종류와 상관없이 대부분 프로그램에서 필요로 하는 데이터 형식이 있다. 이러한 것들 중 할당할 메모리 크기가 정할 수 있는 것들에 대해서는 대부분 예약어로 제공을 해 주고 있다. C언어에서 예약..

3.헤더파일과 소스파일의 내용

헤더파일과 소스파일의 내용 다루는 내용 - 헤더 파일에 포함되는 내용 - 소스 파일에 포함되는 내용 - 책에서 프로젝트 구성 방법과 철학 이번 항목에서는 간단한 학생 관리 프로그램을 예를 들면서 헤더파일과 소스파일에 어떠한 내용이 들어갈 수 있는지에 대해 살펴보도록 하자. 1. ehlib - 일반적으로 사용할 수 있는 자원 정의 ehlib.h ehlib.h 1~2 typedef 형식명 정의 4,40 #ifdef, #ifndef,#else,#endif 상수명 정의(미정의)에 따라 내부 컴파일에 포함할 지 결정 7~12 #include 해당 헤더 파일의 내용을 포함시킴 14 #pragma 옵션에 따른 다양한 매크로 #pragma warning(disable:xx) XX번에 해당하는 경고 메시지를 생략해 달라..

2. 프로그램 구성 요소

프로그램 구성 요소 다루는 내용 - C언어와 프로그래밍 - C언어 구성 요소 - 이 책속의 프로젝트 파일구성 1. C언어와 프로그래밍 컴퓨터 프로그램은 컴퓨터로 하여금 특정 목적을 수행할 수 있는 일련의 이진 코드를 말한다. 이러한 컴퓨터 프로그램을 작성하기 위해서 목적에 따라 많은 언어들과 이들을 이진 코드로 만들어 지는 컴파일러들이 있다. 그 중에 C언어는 Unix라는 O/S를 만드는 과정에 탄생한 언어답게 시스템 프로그래밍에 많이 사용되고 있다. 또한, C언어의 문법은 30~40여가지의 예약어와 30~40여가지의 연산자로 구성된 문법이 간결하다. 하지만, 간결한 문법을 적용해 프로그래밍을 하는데에는 창조적인 고통을 따르게 한다. 하지만 전산 역사가 발전하면서 프로그래밍 과정에서 공통적인 요소들이 자..

1.프로젝트 생성

프로젝트 생성 다루는 내용 - visual studio.net 2008 사용법 - visual studio.net 2008에서 C 콘솔 응용 프로그램 작성법 visual studio.net 2008의 단축키 ms사이트에서 받기 1. 프로젝트를 생성한다.(Ctrl + Shift +N) 2. 새 프로젝트 창에서 프로젝트 형태는 C++언어를 선택하고 템플릿으로는 Win32 콘솔 응용 프로그램을 선택한다. 프로젝트 형태가 C++언어일까? visual studio 에서 C와 C++ 컴파일러가 하나로 되어 있다. 프로젝트의 형태에서 C프로젝트 유형은 없지만 프로젝트에 소스 파일을 추가할 때 파일명을 .c로 생성하면 C문법에 맞게 컴파일러가 동작한다. 프로젝트 명 정할 때 참고사항 - 프로젝트 위치는 본인이 계획하여..

17. 인터페이스(Interface)

인터페이스(Interface) 다루는 내용 - 인터페이스 - 명시적 구현 - 묵시적 구현 인터페이스는 구현에 대한 약속으로 다음과 같은 특징을 지니고 있다. - 인터페이스에는 메소드, 속성, 이벤트, 인덱스를 포함할 수 있다. - 인터페이스에는 시그니쳐만 약속만 되어 있고 구현은 할 수 없다. - 인터페이스 형식의 직접적인 인스턴스를 생성할 수 없다. - 클래스와 구조체, 인터페이스에서 다중 인터페이스를 상속(구현 약속)을 할 수 있다. - 상속(구현 약속)을 한 클래스와 구조체에서는 반드시 인터페이스에 명시된 멤버들에 대한 구현을 하여야 한다. 이와 같이 인터페이스는 추상클래스와 비슷한 측면을 많이 갖고 있다. 이러한 특징으로 인해 인터페이스와 인터페이스는 구현되지 않은 추상이라고 일컫는다. Look ..

16. 다형성

다형성 다루는 내용 - 다형성 - 재정의 - 무효화 이번에는 OOP의 세 기둥중에 세번째 기둥이라 할 수 있는 다형성에 대해 살펴보기로 하자. 다형성은 형식에 대한 부분과 행위에 대한 부분으로 나눌 수가 있다. 먼저, 형식에 대한 다형성은 기반 클래스 형식의 변수 혹은 기반 클래스 형식을 원소로 하는 컬렉션과 배열에서 기반 클래스 형식을 통한 접근을 하는 것을 말한다. 또한, 행위에 대한 다형성은 기반 클래스에서 정의한 행위를 파생 클래스에서 재정의를 함으로써 기반 클래스 형식의 변수로 접근을 하더라도 실제 인스턴스의 형식에 맞는 행위를 할 수 있도록 하는 것을 말한다. (여기서 행위를 메소드로 생각해도 무리가 없다.) 이를 위해 기반 클래스에서는 virtual 키워드를 통해 특정 행위의 경우 파생 클래..

반응형