상수표현식 (constexpr) 은 인라인 함수와 동일한 기능을 제공한다.추가로 컴파일 단계에서 프로그래밍을 최적화하여 반환되는 값이 상수가 되는 식이다. constexpr 지정자 특징 ▶ constexpr 로 선언된 변수는 const 지정자처럼 변수를 상수로 만든다. ▶ constexpr 로 선언된 변수의 데이터를 수정하려고 하면, 컴파일러 에러를 발생시킨다. ▶ 함수 및 클래스의 생성자에도 constexpr 를 적용할 수 있다. 함수에 붙이면 inline 함수처럼 인식된다. 사용불가 ▷ goto 문 ▷ label 문 , switch-case 문 ▷ try-catch 문 ▷ static_assert 선언문 ▷ using 지시문/선언문 ▷ typedef 선언문 ▷ NULL ▷ 리터럴이 아닌 함수 내부에서..
C++11 이전 - 그냥 'C++' C++11 이후 - 모던C++ C++ 언어는 C언어가 제공하는 이식성과 높은 처리 속도를 그대로 보장하고 자 함. C언어에 없는 객체 지향 언어의 클래스와 연산자 오버로딩, 템플릿이나 예외처리 등의 개념을 도입. C++언어가 C언어 보다 느린 이유 : 템플릿이나 객체 지향 언어가 제공하는 기능에 의해 발생한다. 객체지향 언어의 특성상 데이터 타입 변환이나 다형성의 기능을 지원하기 위해, 다수의 메모리 테이블이 추가되면서 더 많은 메모리가 필요하며, 객체가 차지하는 메모리를 관리하는 기능들이 추가되면서 C언어의 프로그램보다 느려졌다. C++11 C++11 에는 STL (표준 템플릿 라이브러리 ( Standard Template Library )) , 람다, functio..
1. 값 전달 방식 2. 주소 전달 방식 3. 참조 전달 방식 주소 전달 방식( ptr ) 와 참조 전달 방식 ( ref ) 은 로우레벨 ( 어셈블리 ) 관점에서 실제 작동 방식은 디버깅을 해보면, 100% 같다 = 성능이 같다. 하이레벨 관점에서는 주소값을 넘겨주는 부분이 숨겨져 있다. // num : 저장 바구니 이름 int num = 1; // ptr : 주소를 담는 바구니 int* ptr = # *ptr = 2; // ref : num 바구니에 또 다른 이름을 부여. // num 이라는 바구니에 ref 라는 다른 이름을 지어줄게! int& ref = num; ref = 3; 그럼 ptr 와 ref 의 차이점은?? 값 전달 처럼 편리하게 사용하고, 주소 전달 처럼 주소값을 이용해 진짜( nu..
당연하지만 사소해서 실수하게 되는 부분을 정리하자면, 데이터 타입 변환이 있다. ▶ 대입 1. int 형 변수들을 short, float 등의 다른 데이터 타입으로 변환하면? 2. -1 인 int 값을 uint 에 대입한다면? int main() { int hp = 33333; short hp2 = hp;// 윗쪽 비트 데이터가 짤린 상태로 저장. 데이터 손실 float hp3 = hp;// 실수(float)로 변환할 때 정밀도 차이로 인해 데이터 손실 hp = -1; unsigned int hp4 = hp; // 비트 단위로 보면 똑같지만, 분석하는 방법의 차이 } 프로그래머 계산기로 계산해보면 알겠지만, 데이터 손실이 일어난다. ▶ 곱셈과 나눗셈 곱셈, 나눗셈을 할 때도 다른 데이터 타입의 경우를 조..
Data 영역 ◈ .data ◈ .bss ◈ .rodata 메모리 구조에서 데이터 영역에 해당하는 부분은 global variable (전역변수) , static variable (static 변수) 이다. 아래 코드를 전역 변수로 선언했다고 했을 때, 데이터 영역은 3가지 영역으로 나뉜다. .bss / .data / .rodata // .bss int a; // .data int b = 0; // .rodata const int c = 0; void main() { // stack 영역 const int d = 0; } 1) .bss 초기값 없는 경우 2) .data 초기값 있는 경우 3) .rodata 읽기 전용 데이터 단, const 의 경우 읽기 전용 데이터라고 볼 수 있지만, C++ 표준에서 꼭..
- Total
- Today
- Yesterday
- SQLD1과목
- SQLD 2과목
- f-string
- 백준
- 파이썬문법
- BAEKJOON
- SQLD 1과목
- NaverCloudPlatform
- 백준별찍기
- 파이썬입출력
- python문법
- 네이버클라우드플랫폼
- 파이썬 입출력
- 파이썬for문
- SUM함수
- Python
- 알고리즘
- 데이터 모델링
- SQLD
- 백준파이썬
- python별찍기
- 데이터베이스
- SQLD40회
- 파이썬
- 40회 SQLD
- 별 찍기
- 백준 별찍기
- Unity GameObject 생성
- range함수
- 파이썬sum
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |