C,C++ 11

[C++] 'enum class' 란?

요약은 맨아래 C++ 11 버전에서 새로 도입된 열거형이다.(참고로 열거형이란 '상수 집합을 정의하는 강력한 도구' 라고 한다.  1,2,3... 등) 이전에는 enum 키워드를 사용하여 열거형(상수 집합)을 쓸 뿐이였지만 class 형태로 고도화 된 것이다. 가장 큰 차이점은 enum 의 경우 아래와 같은 사용이 가능하나enum Number { One = 1, Two, Three,};Number myNumber = Number::Three; // myNumber == 3std::cout  enum class 의 경우 불가능하다enum Number { One = 1, Two, Three,};Number myNumber = Number::Three; // myNumber =..

C,C++ 2024.06.01

cin, cout, cerr, clog 와 endl 에 대하여

에 포함된 4개 함수와 같이 사용되는 endl 에 대해서 알아보자. 기본적으로 입출력을 담당하는 4개 함수가 있으며 정의는 아래와 같다. (참고로 using namespace std 를 가정하여 std::cout 대신에 cout 을 사용함을 가정한다.) (일케해야 편하잖아...) 데이터 추출 : cin ( Console INput ) cin -> 정수(int), 실수(float, double 등), 문자(char), 문자열(string) 을 입력받는 함수이다. 데이터 삽입 : cout ( Console OUTput ), cerr ( Console ERRor ), clog ( Console LOG ) cout -> 상기 cin 과 같은 항목들을 출력하는 함수이다. cerr -> 에러 내용을 경고하고, 콘솔..

C,C++ 2023.07.18

iostream 헤더 파일 이란 <iostream>

iosteam 이 뭘까? -> Input/Output Stream(입출력 스트림) 되시겄다. c 에서의 stdio.h 와 같다고 보면 된다. (참고로 스튜디오 아니다... STanDard Input/Output 이다... 현직 개발자중에 모르는 사람 많드라?) iosteam 용도는 뭘까? -> 위에 써 있다. 입출력 용도이다. iostream 안에 뭐가 있을까? -> 대충 cin / cout / cerr / clog 4개 있다고 보면 된다. iostream 헤더 파일에 무엇이 정의 되어 있는지 확인하기 제일 빠른 방법은 IDE 를 활용 하는 것이다. 아래 사진은 vs 2015 에서 iostream 을 열어본 내용이다. 더보기 더보기 // iostream standard header for Microsof..

C,C++ 2023.07.17

[C/C++] WORD, DWORD, QWORD

C++ 프로젝트를 하면서 DWORD 에 대해 알아보고 나면 까먹어서 정리해둔다.(요약은 맨 아래에)  - WORD, DWORD, QWORD 란?데이터를 저장하는 데 사용되는 '부호 없는 정수형 자료형'이다.더보기// 16비트 WORD 선언WORD word_ = 10;unsigned short word__ = 10;// 32비트 DWORD 선언DWORD dword_ = 1000000000;unsigned long dword__ = 1000000000;// 64비트 QWORD 선언QWORD qword_= 1000000000000000000;unsigned long long qword__ = 1000000000000000000;  typedef unsigned short WORD; - WORD의 탄생 일화데이..

C,C++ 2019.03.04

[C++]warning C4482 : 비표준 확장 에 대해서

프로젝트를 빌드 하던 도중 warning C4482 을 발견 했다. 경고 1 warning C4482: 비표준 확장이 사용되었습니다. 정규화된 이름에 'MyCodeException::ExceptionID' 열거형을 사용했습니다. [경로]\[파일].cpp [줄] 위와 같은 에러가 발생하는 이유는 'enum class'로 정의된 열거형을 사용할 때 발생한다.class MyCodeException {public: enum class ExceptionID { num1 = 1, };}AfxMessageBox(MyCodeException::ExceptionID::num1); - 정식 설명 -이 경고 메세지는 형식 내부(클래스, 구조체, 네임스페이스 등)에 선언된 이름 있는 'enum clas..

C,C++ 2019.01.31

메모리 영역(Heap, Stack, Data, Code)

주기억장치(RAM) 에는 크게 Heap, Stack, Data, Code 로 사용하는 영역(Segment)이 있다. ( BSS 영역도 있다는데 나중에 알아보자. ) 각 데이터 영역은 함수, 변수, 상수 등의 시작 주소값을 가진다. ex) main 함수의 주소값 : 08048400 - Heap malloc(Memory Allocation), new 등으로 동적 메모리를 선언할 때 할당되는 영역 - Stack 지역변수(local), 매개변수(파라미터, parameter), 리턴(return) 등 임시로 사용할 메모리를 선언할 때 할당되는 영역 - Data 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등 프로그램 실행과 동시에 선언할 때 할당되는 영역 - C..

C,C++ 2019.01.23

동적(Dynamic) vs 정적(Static)

동적과 정적. 매번 찾아보고 이해해도 다시 듣다보면 헷갈려서 정리해 둔다. 일단 동적과 정적을 알아보자. 동적(움직일 動, 과녁 的) : 움직이는 성격의 정적(고요할 靜, 과녁 的) : 정지한 성격의 (동동 떠다니고, 정박해 있고... ㅎㅎ) - 동적할당 vs 정적할당 1. 동적할당 ● 동적할당은 new 연산자를 사용하여 동적으로 할당한다 ● 동적할당된 변수는 대체로 힙(heap) 메모리 공간에 저장된다 2. 정적할당 ● 정적할당은 컴파일 타임에 미리 할당한다 ● 정적할당된 변수는 프로그램의 전역(global) 메모리 공간이나 스택(stack) 메모리 공간에 저장된다 일반적으로 동적 라이브러리(Dynamic Library) 와 정적 라이브러리(Static Library)에 대해서 말할때 많이 사용된다.

C,C++ 2019.01.22
반응형