본문 바로가기

language/c++2

[C ++] shallow copy vs deep copy 1. shallow copy - 원본 객체를 바탕으로 새로운 객체를 생성한후 새로운 객체가 원본객체의 필드를 바라보는 형태 - 같은 객체를 공유하기 때문에 한 쪽만 바꾸어도 양쪽의 data가 동시에 바뀌는 단점 - 메모리에 대한 비용 절감 가능 2. deep copy - 원본 객체를 바탕으로 새로운 객체를 생성한후 새로운 객체의 필드를 새로 만들어주는 형태(원본을 바라보지 않음) - 완전 다른 메모리에 할당이 되어 있기 때문에 한 쪽을 바꾸어도 변경되지가 않음 - 메모리는 절감이 되지 않은채로 2배 늘어남 이 concept은 Systemverilog나 Python 등 모든 program 언어에서 동일한 concept으로 되어 있습니다. 2021. 5. 8.
[c++] #ifdef, #ifndef, #if, #elif 최근 C++를 다루게 되면서 코드를 보다보면 제목에 써있는 전처리기를 많이 보게 되어서 정리를 하려 합니다. 1. 설명 조건부 컴파일을 할 수 있는 지시어로 #ifdef는 코드 이전에 define이 되어 있었는지를 check, #ifndef는 코드 이전에 define이 되어있지 않는지를 check, #if는 일반 if~else문과 같지만 컴파일을 구분하여 돌릴수 있는 지시어 2. 사용 예시 #define DEBUG int main(){ #ifdef DEBUG print("defined\n"); #endif #ifndef DEBUG print("not defined\n"); #endif return 0; } 위와 같은 코드에서는 #ifndef 구문은 컴파일 조차 시도되지 않습니다 #ifdef, #ifnde.. 2021. 2. 6.