본문 바로가기
반응형

프로그래밍 ( Programming )/C++9

[CMake] CMake란 CMake는 빌드 파일을 생성 및 배포를 위한 패키지 생성에 이르는 과정을 모두 해주는 프로그램을 의미합니다. 즉, CMake를 통해서 프로젝트를 빌드하는 것이 아닌, CMake를 통해서 빌드 파일을 생성하는 단계까지 해주는 프로그램을 의미합니다. 빌드 파일을 만든다면 그 후 빌드 프로그램을 이용하여 프로젝트를 빌드하게 됩니다. 좀 더 히스토리를 보겠습니다. Compile & Linking (컴파일과 링킹) 컴파일은 소스코드를 어셈블리어로 바꿔주는 과정이며 소스파일 (.c)에서 목적파일 (.o)를 생성하는 과정을 의미합니다. 그리고 링킹은 서로 다른 파일에 있는 목적파일들을 한 군데 묶어서 하나의 실행파일로 만드는 과정을 의미합니다. 하지만 프로젝트가 커져서 만약 컴파일을 수행해야 할 파일들이 많아지게 .. 2023. 1. 14.
[CMake] 윈도우 (Window)에 CMake 설치 CMake는 대표적인 C/C++ 프로젝트 빌드 도구입니다. 리눅스에서도 사용하기도 하며 윈도우에서 설치하는 방법은 다음과 같습니다. 설치를 위해서 우선 CMake 공식 홈페이지의 다운로드 페이지로 이동합니다. 주소: https://cmake.org/download/ Download | CMake Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production environment. It is b.. 2023. 1. 14.
static 변수 static - 정적 #include void increse() { int num1 = 0; printf("%d \n", num1); num1++; } int main() { increse(); increse(); increse(); increse(); return 0; } 해당 예제의 결과는 항상 0의 값을 출력합니다. 이유는 num1이 지역변수로 선언되기 때문에 해당 함수가 끝나면 없어지기 때문이며 다시 함수가 호출되었을 때 새로운 num1이 생기기 때문입니다. 다음 예제를 한번 보겠습니다. #include void increase() { static int num1; // static으로 선언을 하였을때 변수가 프로그램이 종료될때 까지 유지가 된다. printf("%d\n", num1); num1+.. 2021. 4. 30.
[c++] 포인터 설명, 예제코드 C언어의 꽃인 포인터에 대해서 적어보도록 하겠습니다. 우선 주소 값이란 게 있습니다. 주소 값은 어떤 특정 데이터가 저장된 위치의 시작 주소를 의미합니다. c++에서는 주소 값을 1바이트 크기의 메모리 공간으로 나누어 이해를 할 수 있습니다. 그리고 포인터(pointer)는 한글로는 가르키는자라는 의미답게 메모리의 주소 값을 저장하는 변수가 되겠습니다. 즉 포인터 변수라고도 하며 예를 들어 int 변수, 100을 가지는 a를 선언하였을 때 포인터 ptr_a라는 변수는 해당 a의 주소 값을 저장하는 역할을 하게 됩니다. int a = 100; int *ptr_a = &a; 포인터 선언을 위해서는 하단과 같은 형식을 따라야합니다. 선언 형식 : 타입* 포인터 이름; 그리고 추가적으로 동시 선언을 하기 위해서.. 2021. 1. 17.
[C++] 함수 뒤에 Const 붙이는 이유 우연히 c++을 공부하다가 함수 뒤에 const를 붙이는 것을 보았습니다. 기본적으로 const는 constant 즉 상수라는 의미를 지녔습니다. 변수는 반대로 상황에 따라 값이 변하지만 const를 지정함으로써 값을 절대 바꿀 수 없게 만듭니다. 즉 코드와 같이 a라는 변수를 const로 선언하고 a에다가 다시 10을 대입해주려고 하면 오류가 납니다. 다시 본론으로 돌아와서 함수 뒤에 const가 붙는 의미는 현재 ShowPersonInfo라는 함수 선언 뒤에 const를 붙여뒀습니다. 현재 함수 안에 멤버 변수 age에 1을 대입하려는 시도를 했는데 오류가 발생하였습니다. 즉 const의 역할은 이러한 클래스가 있고 그 안에 멤버 변수와 함수들이 있을 때 const를 붙임으로써 해당 함수에서 객체의 .. 2020. 12. 18.
[C++]공백이 포함된 문자열 입력받는 함수 C++에서 단순한 cin을 통해서 띄어쓰기 입력을 받을 수가 없습니다. 때문에 C++에서 띄워쓰기가 포함된 문자열을 받을 수 있는 함수에 대해서 적어보겠습니다. 1. std::getline() #include #include using namespace std; int main() { string str; getline(cin, str); cout 2020. 12. 15.
namespace(네임스페이스) 란, std 네임스페이스 ( namespace ) 네임스페이스는 변수, 함수, 구조체, 클래스 등의 동일한 이름의 충돌 문제를 C++에서 해결하기 위해서 사용되는 영역입니다. 즉 특정한 유효 범위를 제공함으로써 프로그램 내부의 여러 라이브러리에 의한 내부 식별자 충돌을 막을 수 있습니다. 예시 - re.h int Sum(int x, int y) { return x + y; } - re2.h int Sum(int x, int y) { return x + y; } - main.cpp #include #include"re.h" #include"re2.h" int main() { std::cout 2020. 12. 10.
# 아스키 코드 ( ASCII Code ) 설명 및 출력 코드 1. 정의 ASCII - ( American Standard Code for Information Interchange, 미국 정보 교환 표준 부호 ) 아스키코드는 미국 ANSI(미국 국가표준 협회)에서 표준화한 정보 교환용 7비트 부호체계입니다. 2. 용도 영문 알페벳을 사용하는 대표적인 문자 인코딩으로써 컴퓨터와 통신장비를 비롯하여 문자를 많이 사용되는 장치에 사용되고 있습니다. 그리고 대부분의 문자 인코딩이 아스키코드에 기초를 두고 있습니다. 영문 키보드로 입력 할수있는 모든 기호들이 할당되어 있으며 어느 시스템에 적용이 가능하다는 장점이 있습니다. 3. 구성 아스키 코드는 8bit가 아닌 7bit만 사용되는데 나머지 1bit는 통신 에러 검출을 위해서 사용되어집니다. 1 bit는 Parity bi.. 2020. 12. 9.
[C++] STL 및 Container STL - Standard Template Library 직역하면 표준 템플릿 라이브러리 c++ 프로그래밍에 필요한 자료구조와 알고리즘 템플릿을 제공하는 라이브러리로써 사용자가 자료구조나 알고리즘을 알지 못하여도 사용할 수 있는 라이브러리입니다. ( 편하게 사용가능 한 도구라고 생각하자.) # STL 구성요소 1. Container ( + Container Adaptor ) 2. Iterator 3. Algorithm 4. Function Object 1. Container 데이터를 저장하는 객체들로써 연속 컨테이너들과 연관 컨테이너들을 포함합니다. - 표준 연속(Sequence) 컨테이너 ( Vector, deque, list ) - 표준 연관(Associative) 컨테이너 ( set, multise.. 2020. 12. 7.
반응형