BACK TO THE BASIC C++11 핵심 노트: 핵심 주제 12가지로 배우는 C++11

Size: px
Start display at page:

Download "BACK TO THE BASIC C++11 핵심 노트: 핵심 주제 12가지로 배우는 C++11"

Transcription

1 Hanbit ebook Realtime 48 C++11 핵심 노트 핵심 주제 12가지로 배우는 C++11 이주한 지음

2 BACK TO THE BASIC C++11 핵심 노트 핵심 주제 12가지로 배우는 C++11

3 BACK TO THE BASIC C++11 핵심 노트 핵심 주제 12가지로 배우는 C++11 초판발행 2013년 11월 29일 지은이 이주한 / 펴낸이 김태헌 펴낸곳 한빛미디어(주) / 주소 서울시 마포구 양화로 7길 83 한빛미디어(주) IT출판부 전화 / 팩스 등록 1999년 6월 24일 제 호 ISBN / 정가 9,900원 책임편집 배용석 / 기획 이중민 / 편집 이순옥 디자인 표지 여동일, 내지 스튜디오 [밈], 조판 박진희 마케팅 박상용, 김옥현 이 책에 대한 의견이나 오탈자 및 잘못된 내용에 대한 수정 정보는 한빛미디어(주)의 홈페이지나 아래 이메일로 알려주십시오. 한빛미디어 홈페이지 / 이메일 ask@hanbit.co.kr Published by HANBIT Media, Inc. Printed in Korea Copyright c 2013 HANBIT Media, Inc. 이 책의 저작권은 이주한과 한빛미디어(주)에 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 복제 및 무단 전재를 금합니다. 지금 하지 않으면 할 수 없는 일이 있습니다. 책으로 펴내고 싶은 아이디어나 원고를 메일(ebookwriter@hanbit.co.kr)로 보내주세요. 한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.

4 지은이_ 이주한 삼성전자에서 디지털 영상처리 및 네트워크 전송 기술 분야에서 8년간 근무했으 며, 삼성 스마트 TV 개발에 참여했다. 멀티미디어 네트워크 전송 기술과 관련해 40여 개의 국내 국제 특허의 제1저자 및 주요 저자로 등록되어 있기도 하다 년에 가족과 함께 호주로 이민한 후 Australian Associated Press 사 등에서 소프 트웨어 엔지니어로 근무했고, 현재는 멀티미디어 코덱 기술과 관련한 프리랜서 개 발자로 일하고 있다. 애자일 프로세스와 모바일 웹 플랫폼 기술에 관심이 있으며 다양한 실험을 즐긴다. 주말에 두 아이(윤서, 윤재)와 공원에서 함께 노는 것이 요 즈음 가장 큰 즐거움이다.

5 저자 서문 어떤 분은 이미 거대할 대로 거대해진 C++가 이제는 마치 머리카락 대신 수백 마 리의 뱀을 휘감은 메두사와 같은 모습으로 변해버렸다고 말합니다. 이미 차고 넘치 는 C++ 문법을 다 사용하지도 못할뿐더러 배워야 할 모범 사례 Best Practice 라고 불 리는 다양한 테크닉으로도 숨이 막힐 지경인데, 심지어 새로운 문법이라니요. 메두 사의 눈을 보면 그 누구라도 딱딱한 돌덩이로 변해버리듯, 새로운 C++11 표준을 마주하는 순간 프로그래머의 손가락이 돌처럼 굳어버릴 것이라고 지레 겁을 먹습 니다. 그리스 고대 신화를 읽어본 사람이라면 메두사는 괴기스러운 겉모습과는 달리 원 래 과거뿐만 아니라 현재와 미래까지도 꿰뚫어 볼 수 있는 지혜의 여신이었다는 사 실을 알 것입니다. 이런 맥락에서 C++는 메두사의 원모습과 비슷하다고 할 수 있 습니다. 잘만 사용하면 메모리를 마음대로 주무를 수 있는 포인터부터, 코드가 아 름다울 수도 있다고 느껴지는 객체 지향 프로그래밍, 그리고 코드가 또 다른 코드 를 만들어내는 경이로운 신세계 템플릿 메타프로그래밍까지, C++는 그야말로 원 하는 것을 말씀하세요 라고 속삭이는 요정 지니 같은 프로그래밍 언어이기 때문입 니다. 다양한 일을 할 수 있다는 말은 숙달하는 데 오랜 시간을 투자해야 한다는 말과도 일맥상통합니다. 솔직히 말해서 C++는 숙달하기 정말 쉽지 않은 언어입니다. 2~3 년 정도만 익히면 어느 정도 쓸 줄 안다고 자부할 수 있는 언어도 많지만, C++ 만 큼은 예외입니다. 방대한 문법은 둘째치고 C를 기본으로 한 언어인 만큼 C 언어를 이해하는 것은 필수입니다. 실행 환경은 또 어떻습니까? C++는 자바나 C#처럼 컴 파일러나 실행 환경이 독점적으로 제공되지 않으므로 운영체제 플랫폼에 따라, 그 리고 컴파일러 벤더에 따라 똑같은 코드가 동작하기도 하고, 아예 처음부터 컴파일

6 에러를 발생시키기도 합니다. 멀티플랫폼을 위한 C++ 코드를 한 번이라도 작성해 보았다면 #ifdef와 #elif, #endif로 점철되는 코드를 앞에 두고 현기증을 느꼈던 기억이 적어도 한 번쯤은 있으리라 생각됩니다. 이번에 새롭게 도입된 C++11의 기능들은 새로운 문법과 라이브러리를 추가해 프 로그래머 여러분을 다시 한번 곤경에 빠뜨리려는 것이 아닙니다. 오히려 앞에서 말 한 컴파일러 벤더별로 천차만별인 지원 상황을 일소하고, 강력한 표준화 프로세스 를 통해 작성하기도 쉽고 읽기도 편한 C++를 만들려는 노력의 결과물입니다. 이러한 C++의 변화는 컴퓨팅 환경의 변화와도 무관하지 않습니다. 싱글코어에서 멀티코어로, 64KB 메모리 안에서 마른 수건 짜듯 해야 했던 개발 환경에서 이제는 몇 기가의 메모리 정도는 넉넉히 사용할 수 있는 개발 환경으로 변했습니다. 인터 넷에 연결되지 않은 독립 PC 환경에서 모든 종류의 기기가 IP로 연결된 커넥티드 기기 환경으로 변했습니다. C++는 이러한 컴퓨팅 전반에 이르는 변화를 끌어안고 앞으로 나아가려는 노력의 산물입니다. 이 책은 C++를 처음 접하는 독자를 대상으로 하는 책이 아닙니다. 그보다는 C++ 를 다루어 본 경험이 있고, 여타 언어도 한두 개 정도 다루어 본 적이 있는 분들이 변화하는 C++ 언어 표준을 접할 때 읽으면 좋은 책입니다. 이미 C++를 어느 정도 안다고 가정했기 때문에 객체 지향 개념이나 자료구조 같은, 프로그래밍 기초는 다 루지 않습니다. 또한 상대적으로 중요한 개념 설명이 필요한 부분에는 전체 코드를 삽입했지만, 대부분은 간단한 코드이므로 실제로 작동하는 예제를 만들려면 main 함수 정도는 작성할 수 있어야 합니다.

7 C++11에서 도입된 변화가 개발자로서 여러분의 삶에 얼마나 많은 변화를 불러일 으킬지는 분명하지 않습니다. 하지만 C++ 개발자로서 계속 경력을 쌓아나가고 싶 다면, C++에 부는 변화의 바람에 주목해야 합니다. 마이크로소프트와 같은 메이 저 IT 업체가 왜 그렇게 많은 인력과 시간을 C++에 투자하는지 다시 한번 생각해 보기 바랍니다. 훌륭한 목수는 연장을 다듬는 데 소홀함이 없습니다. C++11을 배 우는 데 투자한 시간은 코드의 성능과 생산성 향상이라는 보상으로 반드시 돌아올 것이라 믿습니다. 집필을 마치며 이주한

8 대상 독자 및 참고 사항 초급 초중급 중급 중고급 고급 이 책은 C++11의 핵심 개념을 소개하는 책입니다. C++의 기본을 알고 있으며 C++11에 관심이 있는 분이라면 누구나 읽을 수 있습니다. 또한 이 책의 샘플 코드 를 실행하려면 다음에 소개하는 환경이 갖춰져 있어야 합니다. 마이크로소프트 Visual C GCC 4.7 이상 버전과 컴파일러를 사용할 수 있는 개발 환경 이 책은 국내에서 가장 많이 사용하는 C++ 통합 개발 환경인 Visual C 에서의 실행 여부를 테스트했습니다. 하지만 4장 유니폼 초기화 의 샘플 코드는 Visual C 에서 완전하게 지원하지 않음을 미리 알립니다. 4장에서 설명하 는 샘플 코드는 GNC GCC 4.7 버전 기준으로 작성해 테스트했으며, 여러분도 샘 플 코드를 테스트하려면 GCC 컴파일러를 사용해야 합니다(참고로 GCC 컴파일러에 서 C++11 코드를 컴파일하려면 컴파일 옵션에 -std=c++11 항목을 반드시 추가해야 합니 다).

9 한빛 ebook 리얼타임 한빛 ebook 리얼타임은 IT 개발자를 위한 ebook입니다. 요즘 IT 업계에는 하루가 멀다 하고 수많은 기술이 나타나고 사라져 갑니다. 인터넷을 아무리 뒤져도 조금이나마 정리된 정보를 찾는 것도 쉽지 않습니다. 또한 잘 정리되어 책으로 나오기까지는 오랜 시간이 걸립니다. 어떻게 하면 조금이라도 더 유용한 정보를 빠르게 얻을 수 있을까요? 어떻게 하면 남보다 조금 더 빨리 경험하고 습득한 지식을 공 유하고 발전시켜 나갈 수 있을까요? 세상에는 수많은 종이책이 있습니다. 그리고 그 종 이책을 그대로 옮긴 전자책도 많습니다. 전자책에는 전자책에 적합한 콘텐츠와 전자책 의 특성을 살린 형식이 있다고 생각합니다. 한빛이 지금 생각하고 추구하는, 개발자를 위한 리얼타임 전자책은 이렇습니다. 1. ebook Only - 빠르게 변화하는 IT 기술에 대해 핵심적인 정보를 신속하게 제공합니다. 500페이지 가까운 분량의 잘 정리된 도서(종이책)가 아니라, 핵심적인 내용을 빠르게 전달하기 위해 조금은 거칠지만 100페이지 내외의 전자책 전용으로 개발한 서비스입니다. 독자에게는 새로운 정보를 빨리 얻을 수 있는 기회가 되고, 자신이 먼저 경험한 지식과 정보를 책으로 펴내고 싶지만 너무 바빠서 엄두를 못 내시는 선배, 전문가, 고수분에게는 보다 쉽게 집필하실 기회가 되리라 생각합니다. 또한 새로운 정보와 지식을 빠르게 전달하기 위해 O'Reilly의 전자책 번역 서비스도 하고 있습니다. 2. 무료로 업데이트되는, 전자책 전용 서비스입니다. 종이책으로는 기술의 변화 속도를 따라잡기가 쉽지 않습니다. 책이 일정한 분량 이상으로 집필되고 정리되어 나오는 동안 기술은 이미 변해 있습니다. 전자책으로 출간된 이후에도 버전 업을 통해 중요한 기술적 변화가 있거나, 저자(역자)와 독자가 소통하면서 보완되고 발전된 노하우가 정리되면 구매하신 분께 무료로 업데이트해 드립니다.

10 3. 독자의 편의를 위하여, DRM-Free로 제공합니다. 구매한 전자책을 다양한 IT기기에서 자유롭게 활용하실 수 있도록 DRM-Free PDF 포맷으로 제공합니다. 이는 독자 여러분과 한빛이 생각하고 추구하는 전자책을 만들어 나가기 위해, 독자 여러분이 언제 어디서 어떤 기기를 사용하시더라도 편리하게 전자책을 보실 수 있도록 하기 위함입니다. 4. 전자책 환경을 고려한 최적의 형태와 디자인에 담고자 노력했습니다. 종이책을 그대로 옮겨 놓아 가독성이 떨어지고 읽기 힘든 전자책이 아니라, 전자책의 환경에 가능한 최적화하여 쾌적한 경험을 드리고자 합니다. 링크 등의 기능을 적극적으로 이용할 수 있음은 물론이고 글자 크기나 행간, 여백 등을 전자책에 가장 최적화된 형태로 새롭게 디자인하였습니다. 앞으로도 독자 여러분의 충고에 귀 기울이며 지속해서 발전시켜 나가도록 하겠습니다. 지금 보시는 전자책에 소유권한을 표시한 문구가 없거나 타인의 소유권한을 표시한 문구가 있다면 위법하게 사용하고 계실 가능성이 높습니다. 이 경우 저작권법에 의해 불이익을 받으실 수 있습니다. 다양한 기기에 사용할 수 있습니다. 또한 한빛미디어 사이트에서 구입하신 후에는 횟수에 관계없이 다운받으실 수 있습니다. 한빛미디어 전자책은 인쇄, 검색, 복사하여 붙이기가 가능합니다. 전자책은 오탈자 교정이나 내용의 수정보완이 이뤄지면 업데이트 관련 공지를 이메일로 알려드리며, 구매하신 전자책의 수정본은 무료로 내려받으실 수 있습니다. 이런 특별한 권한은 한빛미디어 사이트에서 구입하신 독자에게만 제공되며, 다른 사람에게 양도나 이전되지 않습니다.

11 차례 01 Hello! C++11 World C++11의 특징 C++11 컴파일러 컴파일러 지원 GCC MSVC LLVM과 Clang 9 02 auto 키워드 범위 기반 for문 유니폼 초기화 decltype 키워드 새로운 배열 - std::array 배열과 벡터 보안 향상 포인터 타입 변환 배열 크기 32

12 6.2.3 부모 타입으로의 타입 변환 금지 제공되는 인터페이스 스마트 포인터 unique_ptr shared_ptr weak_ptr 동시성 문제 람다 표현식 함수 객체 함수 객체의 특징 함수 포인터와 함수 객체의 비교 람다와 함수 객체의 비교 간편한 코딩 가독성 증가 람다 함수 문법 람다 함수 원형 람다 함수 몸체 람다 함수 호출 람다 함수 파라미터 람다 함수의 반환 값 람다 함수 소개자 69

13 8.5.7 람다 함수의 mutable 키워드 람다 함수 활용 static_assert 키워드 R-Value 레퍼런스 이동 시맨틱 이동 생성자와 이동 할당 연산자 복사 생성자 이동 생성자 성능 퍼펙트 포워딩 C++ 포워딩 문제 함수 오버로딩을 이용한 포워딩 문제 해결 R-Value 레퍼런스를 이용한 퍼펙트 포워딩 std::move 104 마무리하면서 106

14 1 Hello! C++11 World 1998년 C++ 표준이 발표된 이래, C++는 아주 오랫동안 다양한 소프트웨어를 만 드는 데 사용됐습니다. 즉, 여러분을 가르쳤던 나이 지긋한 교수님께서 당시로써는 생소한 프로그래밍이라는 것을 처음 배우던 때부터, 10대 천재 프로그래머가 멋진 모바일 게임을 만들어 내는 요즘까지도, C++는 소프트웨어 업계에서 묵묵히 자기 할 일을 해내는 사실상 업계 표준처럼 사용됐던 것입니다. C++가 사실상의 산업 표준이라는 말을 믿기 어려운가요? 여러분이 지금 사용하 는 운영체제는 어떤 언어로 작성됐을까요? 마이크로소프트 윈도우나 애플의 맥 Mac OS 같은 PC 운영체제나 ios나 블랙베리 같은 모바일 기기 운영체제의 전부 혹 은 핵심 부분은 C++로 만든 것입니다. 컴퓨터의 바탕화면을 아름답게 꾸미고, 마 우스를 이용한 컴퓨팅 혁명을 불러왔던 GUI Graphical User Interface 도 한 뭉치의 C++ 코드입니다. 리포트를 작성하거나 프레젠테이션 자료를 만드는 데 사용하는 오피 스 애플리케이션도 C++로 만들어졌으며, 거의 모든 웹 브라우저도 C++ 애플리 케이션입니다. 이른바 기업 정보화에 한몫한 데이터베이스, 이제는 없어서는 안 될 구글 검색 엔진, 컴퓨터 게임, 자동차 내비게이션, 이베이나 아마존 같은 온라 인 상거래 사이트, 심지어 페이스북 같은 소셜 웹 사이트도 C++ 없이는 한순간도 동작할 수 없는 애플리케이션들입니다. 개발자 여러분이 C++ 프로그램을 작성하 는 데 사용하는 마이크로소프트의 Visual Studio 같은 통합 개발 환경IDE, Integrated Development Environment 과 C++ 컴파일러도 C++로 만든 것이기도 합니다. 혹자에게는 C++라는 프로그래밍 언어가 추억의 70, 80 트로트 메들리와도 같은 구닥다리일지도 모르겠습니다. 하지만 21세기에 정보화라는 이름 아래 누리는 여 러 가지 편리함과 즐거움을 가능케 했던 핵심 정보 기술 가운데 하나가 바로 C++ 1장 Hello! C++11 World 1

15 라는 점은 그 누구도 부정할 수 없는 사실입니다. C++는 웹 플랫폼 기술과 클라우 드 기술이 찬란히 빛나는 요즘에도 변화의 흐름을 놓쳐서는 안 될 중요한 프로그래 밍 언어 가운데 하나입니다. 특히 C++0x를 거쳐 정식 표준으로 확정된 C++11이 야말로 C++ 프로그래머들에게 흥분과 기대를 불러일으키는 커다란 선물 꾸러미 가 아닐까 생각합니다. 이러한 C++11이 2011년 8월 12일에 ISO C++ 표준 위원회 Standard Committee 의 만 장일치로 통과되었습니다. 그동안 C++0x 등으로 불렸으나 표준으로 인정받은 해 에 맞춰 기술하는 원칙에 따라 C++11이라는 정식 명칭이 탄생한 것입니다(표준으로 인정받은 다음에도 지속해서 C++를 발전시키기 위해 C++14를 논의하고 있습니다. 단, 실제 2014년도에 표준으로 승인받을 수 있을지는 알 수 없습니다). 최근 스마트폰과 태블릿 PC가 등장하고 클라우드와 빅데이터 구축 등이 IT의 새로 운 화두로 떠오르면서 C++에 대한 관심이 조금 낮아진 것 같습니다. 하지만 앞서 설명한 것처럼 C++는 지금도 다양한 분야에서 가장 많이 사용되는 프로그래밍 언 어입니다. 1장에서는 이러한 C++의 최신 표준인 C++11의 특징을 간략하게 정리 해볼까 합니다. 1.1 C++11의 특징 C++11은 그야말로 천지가 개벽할 만한 변화를 한가득 품었습니다. 심지어 C++ 의 아버지로 불리는 비야네 스트라스트럽 Bjarne Stroustrup 조차 새로운 C++ 표준은 내 자신이 애초에 디자인했던 언어가 아닌 전혀 새로운 언어처럼 느껴진다 라고 놀 라움을 표현할 정도입니다. 이런 소회는 자신이 디자인했던 C++가 가질 수 없었 던 매끄러움과 극복할 수 없었던 한계를 이겨내고 한층 더 향상된 효율성을 이뤄낸 C++11 표준에 보내는 찬사( 합니다. 1장 Hello! C++11 World 2

16 먼저 위키피디아의 설명을 잘 살펴볼 필요가 있습니다. 위키피디아에서는 C++11 의 특징을 다음처럼 설명합니다. 안정성 및 C++98(가능하면 C 언어와도)과의 호환성 유지 핵심 언어의 확장보다는 표준 라이브러리를 이용한 새로운 기능 추가 프로그래밍 기술을 발전시킬 변화 선호 특정 애플리케이션에서만 유용한 새로운 기술보다는 시스템이나 라이브러리 디자인에 유용하게 C++를 개선 이전의 안전하지 않은 기술에 대해 좀 더 안전한 대안을 제공하여 타입 안전성 증가 성능 향상과 하드웨어 직접 조작 능력 강화 실 세계의 문제를 해결할 수 있는 해법 제시 부담 최소화 의 원칙(어떤 유틸리티가 필요로 하는 추가적인 지원은 그 유틸리티를 사용할 때만 필요해야 함) 전문 프로그래머가 필요로 하는 어떤 유틸리티도 제거하지 않고도, 쉽게 가르 치거나 배울 수 있어야 함 또한 문법에서도 편의성이 크게 향상됐습니다. 이를 위키피디아에서는 다음처럼 소개합니다. 템플릿에서의 가변 인자 새로운 문자열 리터럴 1장 Hello! C++11 World 3

17 사용자 정의 리터럴 멀티태스킹 메모리 모델 TLSThread-local storage 특수 멤버 함수의 기본값 사용 및 삭제에 대한 명시적 표시 long long int 타입 정적 assertion 멤버에 대한 sizeof 허용 위키피디아의 설명을 종합하면 C++11의 특징은 기존 ISO C++ 표준과의 호환성 을 유지하면서 최근 객체 지향/스크립트 언어에서 제공하는 편리함을 추가하기 위 함임을 알 수 있습니다. 즉, 다음과 같습니다. 스크립트 언어에서 볼 수 있는 타입의 유연성 강화 표준 라이브러리 STL 를 기반에 두고 언어를 향상함 시스템 종속적이 아닌 다양한 시스템에서 사용할 수 있도록 C++를 개선 애플리케이션마다 독립적일 수 있게, 개발 도구에 영향을 받지 않도록 언어 구 조를 설계 또한 문법에서의 편의성 향상 부분을 살펴보면 주로 타입을 쉽게 다루고 이를 초기 화하는 방법에 많은 할애를 했음을 알 수 있습니다. 1장 Hello! C++11 World 4

18 1.2 C++11 컴파일러 C++11은 승인된 표준 중에서는 최신 표준입니다. 따라서 개발 도구의 핵심 중 하나인 컴파일러의 C++11 지원 여부가 중요하지 않을 수 없습니다. 이번에는 C++11의 컴파일러를 간략하게 살펴보겠습니다 컴파일러 지원 C++11을 지원하는 컴파일러에는 무엇이 있을까요? 아마도 Visual C++를 사용 한다면 MSVC 컴파일러를 떠올릴 것이고, 리눅스를 사용한다면 GCC를 떠올릴 겁 니다(물론 다른 컴파일러도 많습니다). 먼저 C++11을 지원하는 컴파일러를 살펴볼 필요가 있습니다. C++11의 컴파일 러 지원 상황은 아파치 커뮤니티에서 공개한 C++0x 컴파일러 지원 을 참고하면 좋습니다. 표 1-1에서는 C++0x 컴파일러 지원 표 전체 내용 중 국내에서 많이 사용하는 주요 컴파일러 관련 부분만 소개합니다. 표 1-1 C++11을 지원하는 컴파일러별 특징(2013년 5월 13일 기준) C++11 주요 기능 GCC Intel C++ MSVC Sun/ Oracle C++ Clang Alignas Alignof Atomic operations Auto 4.4(v1.0) 11.0(v0.9) 10.0(v0.9) Yes C99 preprocessor Yes Concepts [removed] ConceptGcc Constexpr decltype 4.3(v1.0) 10.0(v1.0) 11.0(v1.0) (v1.1) 11.0(v1.1) 1장 Hello! C++11 World 5

19 C++11 주요 기능 GCC Intel C++ MSVC Sun/ Oracle C++ Clang Defaulted And Deleted Functions Delegating Constructors nov' Explicit conversion operators nov Extended frienddeclarations *** 2.9 extern template Yes Forward declarations for enums Inheriting Constructors Initializer Lists nov Lambda expressions and 11.0(v0.9) 10.0(v1.0) 4.5(v1.1) closures 12.0(v1.0) 11.0(v1.1) 3.1 Local and Unnamed Types as Template Arguments long long Yes Yes Yes Yes Yes Namespace Association New character types New function declaration syntax for deduced return types nullptr * Unicode String Literals Raw String Literals nov 12 Yes User-defined Literals 장 Hello! C++11 World 6

20 C++11 주요 기능 GCC Intel C++ MSVC Sun/ Oracle C++ Clang Right Angle Brackets Yes R-Value References, std::move 4.3(v1.0) 4.5(v2.1) 11.1(v2.0) 10.0(v2.0) Yes 12.0(v2.0) 11.0(v2.1) 4.6(v3.0) static_assert Strongly-typedenums Template aliases Thread-Local Storage 4.8(4.4****) 11.1*** 10.0*** 5.9*** 3.3(2.9****) Unrestricted Unions Built-in Type Traits Variadic Templates 4.3(v0.9) 11.0 nov (1.0) 4.4(v1.0) Range-based for-loop (v0.9) override and final (v0.8)*** 11.0(v1.0) 2.9 Attributes (v0.8)*** 3.3 ref-qualifiers Non-static data member initializers Dynamic initialization and destruction with concurrency (Magic statics) 년 당시의 상황을 알고 싶다면 C++Roscks에서 소개하는 문서를 참고해도 좋습니다. 1장 Hello! C++11 World 7

21 1.2.2 GCC C나 C++를 다뤄본 개발자라면 대다수가 GCC를 알 것입니다. GCC는 현재 C++11 을 가장 완벽하게 지원하는 컴파일러입니다. 앞에서 소개한 표처럼 GCC 버전에 따 라 C++11 전체 기능을 얼마나 지원하는지 차이가 있지만 GCC 컴파일러의 최신 버 전을 사용한다면 C++11 기능 대부분을 사용할 수 있습니다 MSVC 현재 국내에서 C++ 개발 도구로 널리 사용되는 것은 역시나 Visual C++입 니다. 그런데 C++11의 모든 기능을 지원할 것으로 예상했던 Visual C (VC++11)에서는 현재 C++11을 지원하는 컴파일러 중 C++11의 기능 지원 이 가장 소극적으로 이루어졌습니다. Visual C++의 C++11 지원 현황과 사용법을 살펴보려면 Visual C 을 기 준으로 C++11 기능을 소개하는 hh aspx 문서를 참고하기 바랍니다. 한글 문서이므로 참고하기 편할 것 입니다. 또한 영문 문서며, 2011년 C++11 표준이 승인된 지 얼마 되지 않은 후에 발표한 문서(최근 수정일은 2012년 3월 2일)지만 MSDN의 Visual C++ 공식 팀 블로그의 C++11 Features in Visual C++11 에서 Visual C (VC++11)와 Visual C (VC++10)의 C++11 지원 차이점을 설명합니다. 실무 개발 환경에서 아 직 Visual C (VC++12)을 사용하기 부담스럽다면 이 팀 블로그를 참고해 서 C++11을 사용할 것을 추천합니다. 그리고 기존 MSVC 컴파일러에서 부족한 부분을 보완하기 위해 오래된 버전의 Visual C++에 VC++11 컴파일러를 추가로 설치할 수 있도록 지원합니다. 자세한 내용은 Announcing November CTP of the C++ compiler, now with more C++11 에서 확인할 수 있습니다. 1장 Hello! C++11 World 8

22 1.2.4 LLVM과 Clang 지금까지 널리 쓰이던 GCC와 MSVC 컴파일러에 대해서 설명했습니다. 그런데 뭔 가 하나 부족하다는 생각이 들지는 않으신가요? 과거에는 크게 신경 쓸 필요가 없 었지만 스마트폰 시대가 열리면서 주목하기 시작한 애플 개발 환경을 빼놓을 수 없 습니다. 당연히 애플 개발 환경에서도 C++11을 중요하게 생각하며 이를 지원하는 개발 환경으로 LLVM과 Clang이 있습니다. LLVM은 원래 다양한 프로그래밍 언어의 정적/동적 컴파일러 집합과 도구를 만들 어내는 오픈 소스 프로젝트로 시작한 것입니다. 자신만의 중간 코드IR, Intermediate Representation 언어를 정의하고, 이 중간 코드로 코드를 생성/수행하는 일을 하며, 프 로그래밍 언어와 CPU에 독립적인 최적화기, x86, x86-64, ARM, SPARC 등 다 양한 CPU를 지원합니다. 또한 프로그램을 분석하는 루틴을 만들 때 아주 편리합 니다. LLVM의 자세한 설명은 LLVM Compiler Infrastructure을 자세히 살펴보 시기 바랍니다. LLVM은 창시자라고 할 수 있는 크리스 래트너 Chris Lattner 의 대학원 연구 과제로 시작 했던 프로젝트인데, 크리스 래트너가 애플에 입사하면서 이 프로젝트를 전면 도입했고 애플이 주도적으로 관리하고 있습니다. 물론 오픈 소스 프로젝트임에는 변함없습니다. Clang은 LLVM 컴파일러 컴포넌트를 기반으로 해 C, C++, Objective-C, Objective-C++ 프로그래밍 언어를 지원하기 위한 컴파일러 프론트엔드입니다. GCC 프론트엔드보다 빠르고, 메모리 소모가 적으며 에러 메시지가 명확하다는 특 징이 있습니다. 지원하는 언어를 보면 알겠지만 애플이 주도하며, 구글에서도 C++를 사용할 때 LLVM에 기반을 둔 Clang을 사용하길 권장합니다. 당연히 Xcode에는 포함되어 2장 auto 키워드 9

23 있으며 리눅스 패키지에도 포함되어 있습니다. LLVM 2.6 버전 이후로는 정식 릴 리스의 일부로 자리잡았습니다. 일리노이 대학교/NCSA 오픈 소스 라이선스로 이 용할 수 있습니다. Objective-C++는 아직도 개발 중인 언어로 Objective-C와 C++를 혼합해서 사용하 려는 목적이 있습니다. 일반적으로 Objective-C 문법으로는 C++ 객체나 표준 라이브 러리를 호출할 수가 없는데 이를 위해서 생겨난 개념입니다. GCC 4.1 버전부터 지원합 니다. 2장 auto 키워드 10

24 2 auto 키워드 원래 C++에서 auto 키워드는 변수의 저장 공간을 지정하려는 용도로 만들어졌 습니다. 이런 키워드들을 일컬어 스토리지 클래스 지정자 storage class specifier 라고 부릅니다. 스토리지 클래스 지정자에는 auto 이외에도 register, static, extern, mutable과 같은 키워드들이 있으며, 여전히 많은 C++ 프로그래머의 사랑을 받으 며 다양한 용도로 사용되어 왔습니다. 특히 static이나 extern 같은 키워드는 C 라이브러리와 함께 작성해야 하는 용도 로 프로그램에 등장하는 단골 메뉴이며, register나 mutable 같은 키워드는 임베 디드 멀티스레드 프로그래밍에서 없어서는 안 될 존재들입니다. 하지만 앞에서 소개한 키워드와 비교했을 때 auto의 경우는 뭔가 편리해 보일 것 같은 이름임에도 사용 빈도가 내리막을 걷다 못해 아무도 찾지 않는 죽은 키워드가 되었습니다. 이유는 auto 키워드가 로컬 변수의 스토리지 클래스를 지정하는 기본 설정이었기 때문입니다. 기본 설정이란 의미는 무엇일까요? 여기에서는 선언해도 그만, 선언하지 않아도 그만이라는 의미입니다. 즉, 다음 구문은 완전히 똑같은 문장입니다. int i = 0; auto int i = 0; 얼른 일을 끝내고 퇴근해야 할 시간도 부족한 마당인데, auto라는 네 글자를 입력 하는 것도 사실은 시간 낭비입니다. 결국 auto 키워드는 야심찬 이름에도 아무도 찾지 않아 쓸쓸히 용도 폐기의 길을 향하고 있었습니다. 2장 auto 키워드 11

25 한편 새로운 키워드를 찾아 삼매경이던 C++11 표준 위원회에서는 이 먼지 쌓인 키워드를 발견해냈고, 이렇게 쓸쓸히 버려두기보다는 새로운 의미를 부여한 후 멋 지게 재활용하기로 결심합니다. 그 결과 C++11에서 auto 키워드는 컴파일러에게 타입을 알아내라고 지시하라는 의미가 되었습니다. 즉, 프로그래머가 직접 타입을 지정하지 않아도 변수 이름만 컴파일러에게 전달하면 변수에 지정된 값에 맞춰서 컴파일러가 자동으로 타입을 지정합니다. 다음 소개하는 예를 살펴보면 쉽게 이해 할 수 있습니다. auto i = 100; // i 변수의 타입은 int auto l = 100L; // l 변수의 타입은 long auto p = new Person(); // p 변수의 타입은 Person 포인터 그럼 실제로 auto 키워드를 사용한 예를 살펴보겠습니다. #include "stdafx.h" #include <iostream> using namespace std; struct Person { int age; char name[5]; }; class CPerson { public: CPerson():age(1), name("anonymous"){} CPerson(int age, std::string name):age(age), name(name){} ~CPerson(){}; public: int GetAge(){return age;} private: 2장 auto 키워드 12

26 }; int age; std::string name; // auto nationality; // error int main(int argc, char** argv) { // char* type auto name = "JohnL"; cout<<name<<endl; // integer auto inum = 1; cout<<inum<<endl; // pointer auto* pinum = &inum; cout<<*pinum<<endl; // reference auto& rinum = inum; cout<<rinum<<endl; rinum = 10; cout<<rinum<<endl; cout<<*pinum<<endl; // object type auto* p1 = new Person; auto* p2 = new CPerson; cout<<"age : "<<p2->getage()<<endl; getchar(); return 0; } 2장 auto 키워드 13

27 실행 결과는 다음과 같습니다. JohnL Age : 1 타입의 이름이 길거나 참조나 포인터를 지정할 경우는 입력해야 할 코드 길이가 좀 깁니다. 하지만 auto 키워드는 이런 코드 입력을 줄여줍니다. int 타입의 변수를 선언하는 경우를 제외하면 적어도 같거나 짧습니다. 특히 다음 예처럼 STL 컨테이 터에서 반복자 iterator 등을 지정할 때는 auto 키워드가 입력해야 할 코드양을 상당 히 줄여줍니다. #include <iostream> #include <vector> using namespace std; int main(int argc, char** argv) { vector<int> vint; for(auto i=0; i < 10; ++i) { vint.push_back(i); } // C++03 표준 cout<<"c++03 standard"<<endl; vector<int>::iterator it = vint.begin(); while(it!= vint.end()) { cout<<*it<<endl; 2장 auto 키워드 14

28 it++; } // C++11 표준 cout<<"c++11 standard"<<endl; auto it2 = vint.begin(); while(it2!= vint.end()) { cout<<*it2<<endl; it2++; } getchar(); return 0; } 실행 결과는 다음과 같습니다. C++01 standard C++11 standard 장 auto 키워드 15

29 기존 STL의 반복자를 사용해야 할 경우에는 typedef를 이용해 길고 긴 반복자 타 입을 짧게 줄이는 선언부터 하고 시작해야 했습니다. 또한 다른 프로그래머가 이미 작성했던 typedef를 읽는 일은 또 어떻습니까. 한두 개라면 부담없이 읽을 수 있겠 지만, 십여 개의 typedef가 작성된 코드를 읽는 것만큼 고역인 일도 없습니다. 하 지만 이제 새롭게 태어난 auto 키워드를 사용하면, 이런 불편에서 해방될 수 있을 뿐 아니라 코드 작성 시간을 줄여 여러분의 퇴근 시간을 조금이나마 앞당길 수 있 을지도 모릅니다. 사실 지금까지 설명한 동적 타입 지정은 자바스크립트 같은 웹을 위한 언어나 파이 썬 같은 스크립트 언어에서는 오랫동안 편리하게 사용되던 개념입니다. 그런데 지 금까지 C++는 기본적으로 C의 개념을 상속받은 언어이므로 명시적으로 타입을 지정해야 했습니다. C++11에서는 기존의 명시적인 타입 지정도 지향하면서 동적인 타입 지정도 허용 하도록 바뀌었습니다. 지금부터는 변수들의 타입 지정 같은 사소한 일에 얽매이지 말고 프로그램 로직이나 구성 설계에 좀 더 신경 쓰기 바랍니다. 2장 auto 키워드 16

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

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관 Hanbit ebook Realtime 30 C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 Safe C++ 블라디미르 쿠스퀴니르 지음 / 정원천 옮김 이 도서는 O REILLY의 Safe C++의 번역서입니다. BACK TO THE BASIC C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 BACK TO THE BASIC C++ 버그 헌팅 버그를

More information

CSG_keynote_KO copy.key

CSG_keynote_KO copy.key 101. 3 Shutterstock 4 Shutterstock 5 Shutterstock? 6? 10 What To Create 10 Ways to Find Trends and Inspiration 12 15 17 :. 21 24 Shutterstock 26 29 -. 31 Shutterstock : 36 " " 37! 39 41 45 46 47 49 Copyright

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Rvalue Reference and constexpr 김경진 Microsoft MVP(Visual C++) vector user-defined literals thread_local vector initializer lists template aliases constexpr lambdas []{ foo(); } unique_ptr

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

wtu05_ÃÖÁ¾

wtu05_ÃÖÁ¾ 한 눈에 보는 이달의 주요 글로벌 IT 트렌드 IDG World Tech Update May C o n t e n t s Cover Story 아이패드, 태블릿 컴퓨팅 시대를 열다 Monthly News Brief 이달의 주요 글로벌 IT 뉴스 IDG Insight 개발자 관점에서 본 윈도우 폰 7 vs. 아이폰 클라우드 컴퓨팅, 불만 검증 단계 돌입 기업의

More information

URL Shortener 프로젝트로 배우는 Vert.X 프레임워크

URL Shortener 프로젝트로 배우는 Vert.X 프레임워크 Hanbit ebook Realtime 95 URL Shortener 프로젝트로배우는 Vert.x 프레임워크 김요한지음 URL Shortener 프로젝트로배우는 Vert.x 프레임워크 김요한지음 URL Shortener 프로젝트로배우는 Vert.X 프레임워크 초판발행 2015 년 4 월 10 일 지은이김요한 / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로

More information

연구노트

연구노트 #2. 종이 질 - 일단은 OK. 하지만 만년필은 조금 비침. 종이질은 일단 합격점. 앞으로 종이질은 선택옵션으로 둘 수 있으리라 믿는다. 종이가 너무 두꺼우면, 뒤에 비치지 는 않지만, 무겁고 유연성이 떨어진다. 하지만 두꺼우면 고의적 망실의 위험도 적고 적당한 심리적 부담도 줄 것이 다. 이점은 호불호가 있을 것으로 생각되지만, 일단은 괜찮아 보인다. 필자의

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 SIGPL Summer Workshop 2017 C++ 메타프로그래밍과 constexpr 김경진 Astersoft Microsoft MVP(Visual C++) Agenda 메타프로그래밍 템플릿메타프로그래밍 constexpr 메타프로그래밍 meta- < 초월한 > < ~ 의범주를넘어서는 > 메타프로그래밍 metaphysics 일반적물리학범주를넘어서는학문 형이상학

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

iOS 7 핵심 노트: Xcode 5, 플랫 UI, API 중심으로 살펴보는 iOS 7

iOS 7 핵심 노트: Xcode 5, 플랫 UI, API 중심으로 살펴보는 iOS 7 Hanbit ebook Realtime 51 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 ios 7 핵심 노트 야곰 지음 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 ios 7 핵심 노트 ios 7 핵심 노트 Xcode 5, 플랫 UI, API 중심으로 살펴보는 ios 7 초판발행 2013년 12월 31일 지은이 야곰

More information

178È£pdf

178È£pdf 스승님이 스승님이 스승님이 말씀하시기를 말씀하시기를 말씀하시기를 알라는 위대하다! 위대하다! 알라는 알라는 위대하다! 특집 특집 기사 특집 기사 세계 세계 평화와 행복한 새해 경축 세계 평화와 평화와 행복한 행복한 새해 새해 경축 경축 특별 보도 특별 특별 보도 스승님과의 선이-축복의 선이-축복의 도가니! 도가니! 스승님과의 스승님과의 선이-축복의 도가니!

More information

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

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기 소규모 비즈니스를 위한 YouTube 플레이북 YouTube에서 호소력 있는 동영상으로 고객과 소통하기 소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

정부3.0 국민디자인단 운영을 통해 국민과의 소통과 참여로 정책을 함께 만들 수 있었고 그 결과 국민 눈높이에 맞는 다양한 정책 개선안을 도출하며 정책의 완성도를 제고할 수 있었습니다. 또한 서비스디자인 방법론을 각 기관별 정부3.0 과제에 적용하여 국민 관점의 서비스 설계, 정책고객 확대 등 공직사회에 큰 반향을 유도하여 공무원의 일하는 방식을 변화시키고

More information

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

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

152*220

152*220 152*220 2011.2.16 5:53 PM ` 3 여는 글 교육주체들을 위한 교육 교양지 신경림 잠시 휴간했던 우리교육 을 비록 계간으로이지만 다시 내게 되었다는 소식을 들으니 우 선 반갑다. 하지만 월간으로 계속할 수 없다는 현실이 못내 아쉽다. 솔직히 나는 우리교 육 의 부지런한 독자는 못 되었다. 하지만 비록 어깨너머로 읽으면서도 이런 잡지는 우 리

More information

내지-교회에관한교리

내지-교회에관한교리 내지-교회에관한교리 2011.10.27 7:34 PM 페이지429 100 2400DPI 175LPI C M Y K 제 31 거룩한 여인 32 다시 태어났습니까? 33 교회에 관한 교리 목 저자 면수 가격 James W. Knox 60 1000 H.E.M. 32 1000 James W. Knox 432 15000 가격이 1000원인 도서는 사육판 사이즈이며 무료로

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

º´¹«Ã»Ã¥-»ç³ªÀÌ·Î

º´¹«Ã»Ã¥-»ç³ªÀÌ·Î 솔직히 입대하기 전까지만 해도 왜 그렇게까지 군대를 가려고하냐, 미친 것 아니냐는 소리도 많이 들었다. 하지만 나는 지금 그 때의 선택을 후회하지 않는다. 내가 선택한 길이기에 후회는 없다. 그런 말을 하던 사람들조차 지금의 내 모습을 보고 엄지 손가락을 치켜세운다. 군대는 하루하루를 소종하게 생각 할 수 있게 만들어 주었고, 점점 변해가는 내 모습을 보며

More information

40043333.hwp

40043333.hwp 1 2 3 4 5 128.491 156.559 12 23 34 45 안녕하십니까? 본 설문은 설악산과 금강산 관광연계 개발에 관한 보다 실질적인 방향을 제시하고자 만들어졌습니다. 귀하께서 해주신 답변은 학문적인 연구에 도움이 될 뿐 아니라 더 나아가 다가오는 21세기 한국관광 발전에 많은 기여를 할 것입니다.

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌

0.筌≪럩??袁ⓓ?紐껋젾001-011-3筌 3 4 5 6 7 8 9 10 11 Chapter 1 13 14 1 2 15 1 2 1 2 3 16 1 2 3 17 1 2 3 4 18 2 3 1 19 20 1 2 21 크리에이터 인터뷰 놀이 투어 놀이 투어 민혜영(1기, 직장인) 내가 살고 있는 사회에 가치가 있는 일을 해 보고 싶 어 다니던 직장을 나왔다. 사회적인 문제를 좀 더 깊숙이 고민하고, 해결책도

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap12-고급기능.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

*074-081pb61۲õðÀÚÀ̳ʸ

*074-081pb61۲õðÀÚÀ̳ʸ 74 October 2005 현 대는 이미지의 시대다. 영국의 미술비평가 존 버거는 이미지를 새롭 게 만들어진, 또는 재생산된 시각 으로 정의한 바 있다. 이 정의에 따르 면, 이미지는 사물 그 자체가 아니라는 것이다. 이미지는 보는 사람의, 혹은 이미지를 창조하는 사람의 믿음이나 지식에 제한을 받는다. 이미지는 언어, 혹은 문자에 선행한다. 그래서 혹자는

More information

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466>

<C3E6B3B2B1B3C0B0313832C8A32DC5BEC0E7BFEB28C0DBB0D4292D332E706466> 11-8140242-000001-08 2013-927 2013 182 2013 182 Contents 02 16 08 10 12 18 53 25 32 63 Summer 2 0 1 3 68 40 51 57 65 72 81 90 97 103 109 94 116 123 130 140 144 148 118 154 158 163 1 2 3 4 5 8 SUMMER

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack

Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack FastTrack 1 Office 365, FastTrack 4 FastTrack. Tony Striefel FastTrack FastTrack 5 11 2 FASTTRACK 소개 디지털 혁신은 여기서 시작합니다. Microsoft FastTrack은 Microsoft 클라우드를 사용하여 고객이 신속하게 비즈니스 가치를 실현하도록 돕는 고객 성공 서비스입니다.

More information

chap10.PDF

chap10.PDF 10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern

More information

2015년9월도서관웹용

2015년9월도서관웹용 www.nl.go.kr 국립중앙도서관 후회의 문장들 사라져 버릴 마음의 잔해 지난해와 마찬가지로 이번 해에도 배추농사에서 큰돈을 남은 평생 머릿속에서 맴돌게 될 그 말을 다시 떠올려보 만졌다 하더라도 지난 여름 어느 날 갑자기 들기 시작한 았다. 맺지 못한 채 끝나버린 에이드리언의 문장도 함께. 그 생각만은 변함없을 것 같았다. 같은 나이의 다른 아이 그래서

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

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

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

PowerPoint Presentation

PowerPoint Presentation FAST CAMPUS 2014년 6월 2일 애플(Apple)이 세계개발자대회 (WWDC 2014)에서 ios와os X 기반의 애플리케이션 개발을 위해 새로운 프로그래밍 언어 스위프트 를 선보였습니다. 보통 프로그램 언어의 경우 사람이 사용하는 말과 유사할수록 성능은 떨어지는데 이는 사람의 말과 유사할 경우 컴퓨터가 이해하도록 바꾸는 데 시간이 많이 걸리기 때문입니다.

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Art & Technology #5: 3D 프린팅 - Art World | 현대자동차

Art & Technology #5: 3D 프린팅 - Art World | 현대자동차 Art & Technology #5: 3D 프린팅 새로운 기술, 새로운 가능성 미래를 바꿔놓을 기술 이 무엇인 것 같으냐고 묻는다면 어떻게 대답해야 할까요? 답은 한 마치 한 쌍(pair)과도 같은 3D 스캐닝-프린팅 산업이 빠른 속도로 진화하고 있는 이유입니 가지는 아닐 것이나 그 대표적인 기술로 3D 스캐닝 과 3D 프린팅 을 들 수 있을 것입니 다. 카메라의

More information

Print

Print 22-12324-4TEL:3668-3114 FAX:742-3387 TEL:3668-3120 FAX:745-9476 TEL:3668-3109, 2279-0867~8 TEL:3668-3127 TEL:3668-3123, 3128, 3162 www.saeki.co.kr, www.pentaximaging.co.kr Small 의 큰 스타일을 경험하다 당신의 카메라만으로도,

More information

1,000 AP 20,000 ZoneDirector IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. ZoneDirector 5000 WLAN L

1,000 AP 20,000 ZoneDirector IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. ZoneDirector 5000 WLAN L 1,000 AP 20,000 ZoneDirector 5000. IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. WLAN LAN Ruckus Wireless (ZD5000),, WLAN. 20,000 2,048 WLAN ZD5000 1,000 ZoneFlex

More information

<5B3134303432325DB1B3C0B0C0DAB8A65FC0A7C7D15FB5F0C0DAC0CEBBE7B0ED5FC5F8C5B62E706466>

<5B3134303432325DB1B3C0B0C0DAB8A65FC0A7C7D15FB5F0C0DAC0CEBBE7B0ED5FC5F8C5B62E706466> 2 3 교육자를 위한 디자인사고 / 교육자를 위한 디자인사고 / 4 5 어떻게 하면 나의 교실이 학생들의 니즈를 어떻게 하면 우리는 학교에서 21세기형 학습경험 충족시키는 방향으로 재구성될 수 있을까? 을 만들어낼 수 있을까? 뉴욕에서 2학년을 가르치고 있는 마이클(Michael Schurr)은 자신이 한번도 아이들에게 무엇이 그들을 교실 캘리포니아에 위치한

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집 Modern Modern www.office.com ( ) 892 5 : 1577-9700 : http://www.microsoft.com/korea Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

win8_1±³

win8_1±³ 1 2 3 4 5 6 IDG Tech Library 7 8 9 ITWorld H ow To 마트글래스 기능은 사용자가 시청하거나 플레이한 하우스터프웍스(HowStuffWorks) 내용을 추적해 주고, 성취표나 추가 비디오 콘텐츠 하우스터프웍스 윈도우 8 앱은 기본적으로 하우 등 보조 정보를 제공한다. 또한 PC를 Xbox 360의 스터프웍스 웹 사이트의 모든

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)- 1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다. 1.2.1 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-1 연산범위이유 : 00000000 00000000 00000000 00000000의 32

More information

클라우드컴퓨팅 주요법령해설서 2017. 11. 목차 3... 5 I... 15 II... 39 1. 공공분야... 41 2. 금융분야... 71 3. 의료분야... 81 4. 교육분야... 95 5. 신산업등기타분야... 101 III... 109 요약문 5, 15 3, 1 16~ 18 15 11 16 4, 16 7,,, 5 16 5, 16 7~10,,,

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

초보자를 위한 C++

초보자를 위한 C++ C++. 24,,,,, C++ C++.,..,., ( ). /. ( 4 ) ( ).. C++., C++ C++. C++., 24 C++. C? C++ C C, C++ (Stroustrup) C++, C C++. C. C 24.,. C. C+ +?. X C++.. COBOL COBOL COBOL., C++. Java C# C++, C++. C++. Java C#

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

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

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

초보자를 위한 C# 21일 완성

초보자를 위한 C# 21일 완성 C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PDF_Compass_32호-v3.pdf

PDF_Compass_32호-v3.pdf Design Compass는 특허청의 디자인맵 웹사이트에서 제공하는 디자인, 브랜드, 기술, 지식재산권에 관한 다양한 콘텐츠를 디자이너들의 입맛에 맞게 엮은 격월간 디자인 지식재산권 웹진입니다. * Design Compass는 저작이용이 허락된 서울서체(서울시)와 나눔글꼴(NHN)을 사용하여 제작되었습니다. 2 4 5 6 7 9 10 11 편집 / 디자인맵

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

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

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

본책- 부속물

본책- 부속물 PROGRAMMING RUBY PROGRAMMING RUBY : THE PRAGMATIC PROGRAMMER S GUIDE, 2nd Ed. Copyright c 2005 Published in the original in the English language by The Pragmatic Programmers, LLC, Lewisville. All rights

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

52 l /08

52 l /08 Special Theme_임베디드 소프트웨어 Special Report 모바일 웹 OS 기술 현황과 표준화 동향 윤 석 찬 다음커뮤니케이션 DNALab 팀장 1. 머리말 디바이스에 애플리케이션을 배포할 수 있다. 본 고에서는 모바일 웹 OS의 현황과 임베디드 환 오늘날 인터넷에서 웹 기반 콘텐츠가 차지하는 부 경에서 채용되고 있는 최적화 기술을 살펴보고, 웹

More information

<C6F7C6AEB6F5B1B3C0E72E687770>

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

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

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information