C,C++ 10

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; - WORD의 탄생 일화 데이터 처리 과정에서 u..

C,C++ 2019.03.04

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

프로젝트를 빌드 하던 도중 warning C4482 을 발견 했다. 경고 1 warning C4482: 비표준 확장이 사용되었습니다. 정규화된 이름에 'MyCodeException::ExceptionID' 열거형을 사용했습니다. [경로]\[파일].cpp [줄] 위와 같은 에로가 발생하는 이유는 함수 호출 파라미터에 enum(열거형)을 전달 할 때 발생한다. ex) AfxMessageBox(MyCodeException::ExceptionID::num1); - 정식 설명 - 이 경고 메세지는 형식 내부(클래스, 구조체, 네임스페이스 등)에 선언된 이름있는 enum을 사용하게 되었을 때 나타나는 증상이다. 빌드시 경고 메세지를 없애기 위해서는 [형식 내부명]::[열거형 항목] 으로 사용하면 된다. ex) Af..

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

싱글바이트, 멀티바이트, 유니코드

쓰고 보니 뭔가 잘못 되었다. -싱글바이트아스키코드를 통해 0x00 ~ 0x7F 범위의 문자 + 0x80 ~ 0xFF 범위의 확장 문자를 통해 유럽 언어를 표현한다. - 멀티바이트아스키코드를 통한 128개의 공간으로는 수많은 언어를 표현할 수가 없다. (알파벳 제외)이 문제점을 해결하기 위한 방안이 멀티 바이트 코드다. 멀티 바이트 코드의 표현 방식은 아래와 같다.1. 아스키 코드에 포함되는 문자는 1Byte로 표현.2. 아스키 코드에 포함되지 않는 문자는 2Byte로 표현.ex) 'abs절대값' 과 같은 문자열 -> 'abs' 3Byte + '절대값' 6Byte + NULL문자 1Byte 총 10Byte가 할당된다. 아스키 코드에 따라 할당되는 영역이 달라짐으로 효율적으로 보이긴 한다.단, 일부의 함수..

C,C++ 2019.01.22
반응형