전체 글 357

[윤성우 열혈 C++프로그래밍] 어셈블리 코드 - Chapter5, Chapter6

* 복사 생성자를 정의하지 않으면,   멤버 대 멤버의 복사를 진행하는 디폴트 복사 생성자가 자동으로 삽입 * 복사 생성자가 호출되는 시점   (1) 기존에 생성된 객체를 이용해서 새로운 객체를 초기화하는 경우   (2) Call-by-value 방식의 함수호출 과정에서 객체를 인자로 전달하는 경우   (3) 객체를 반환하되, 참조형으로 반환하지 않는 경우(즉, 값으로 반환하는 경우) int main(void){008B10C0 push ebp 008B10C1 mov ebp,esp 008B10C3 sub esp,0Ch 008B10C6 mov eax,dword ptr [__security_cookie (08B5000h)] 008B10CB ..

IT공부/IT서적 2025.04.02

[ETC] 스택 풀기: 예외가 발생한 위치를 제대로 추적하려면

💡 예외 처리와 스택 풀기, 그리고 내가 뒤늦게 이해한 피드백 이야기 예외 처리에 대한 피드백을 받았던 건 꽤 오래전 일이다컨트롤러에서 try-catch로 예외를 한꺼번에 처리하기보다는 서비스 단에서 예외를 나눠서 처리하는 게 더 낫다는 얘기였다 그 때 설명을 들었지만, 왜 굳이 그렇게 해야 하는지 이해가 잘 되지 않았다하지만 최근에 C++의 스택 풀기(stack unwinding) 개념을 공부하면서 그 피드백의 의미가 처음으로 제대로 와닿았다  📌 스택 풀기란?C++에서 throw로 예외가 발생하면, 함수 호출 스택을 따라 올라가며 지역 객체들이 소멸된다이 과정을 스택 풀기(stack unwinding)라고 한다문제는, 이 과정이 끝나고 catch 블록에 도달했을 때는 이미 호출 스택의 맥락이 다 ..

IT공부 2025.04.01

[윤성우 열혈 C++프로그래밍] 어셈블리 코드 - Chapter1, Chapter2

* C++에서는   프로그래머가 정의하는 헤더파일의 선언이 아닌, 표준 헤더파일의 선언에는 확장자를 생략하기로 약속되어 있다 int main(void){00007FF646331020 sub rsp,28h cout >::operator > (07FF6463310C0h)] 00007FF646331049 mov rcx,rax 00007FF64633104C call qword ptr [__imp_std::basic_ostream >::operator >::operator > (07FF6463310C0h)] 00007FF646331077 mov rcx,rax 00007FF64633107A call qword ptr [__im..

IT공부/IT서적 2025.03.22

[C++] const T&(읽기 전용 참조), T&&(우변 참조, 이동 가능)

* const T&(읽기 전용 참조)   - lvalue, rvalue 모두 받을 수 있음   - 복사 없이 임시값도 참조 가능   - 수정 불가   [사용 목적] 값을 읽기만 할 때, 복사 비용을 줄이면서 원본을 변경하지 않기 위해 * T&&(우변 참조, 이동 가능)   - rvalue만 받을 수 있음   - 복사 대신 이동(Move) 가능   - 수정 가능   - 임시값을 효율적으로 쓰고 싶을 때 사용   [사용 목적] 자원 소유권을 받아서 수정하거나 이동(move), 복사를 피하고 성능 최적 * string&, string&&, const string& 차이함수 선언받을 수 있는 값수정 시 원본 영향void f(string& s)lvalue (string a)바뀜void f(string&& s)rv..

IT공부 2025.03.22

[C++] 참조값 리턴

* 참조값을 리턴할 때,    호출자가 리턴값을 어떻게 받느냐에 따라 그 리턴값이 참조로 쓰일지 복사된 값으로 쓰일지 결정된다   ㄴ 리턴이 값(int)이면 무조건 복사됨 → 호출자가 참조로 받을려고 해도 안됨   ㄴ 리턴이 참조(int&)일 때만 → 호출자가 참조로 받을 수도 있고 복사로 받을 수도 있음 int RefFuncOne_2(int& ref){ ref++; return ref;} * 기본 리턴 타입이 int일 때,   리턴값 자체가 참조가 아니므로 참조로 받으려고 하면 컴파일 에러 발생int a = 10;// 1. 복사로 받음int result = RefFunc(a); // a는 11, result는 복사된 11result++; // a는 그대로 11,..

IT공부 2025.03.22

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 21장. Dynamic Linking Library

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다   https://product.kyobobook.co.kr/detail/S000001223395 뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고뇌를 자극하는 윈도우즈 시스템 프로그래밍 |product.kyobobook.co.krhttps://www.inflearn.com/course/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/dashboard [지금 무료]뇌를 자극하는 윈도우즈 시스템 프로그래밍 강의 | 한빛미디어 - 인프런한빛미디어 | , [사진] 1. 강좌 소개 한빛미디어(주) 에서 발간한 '뇌를 자극하..

IT공부/IT서적 2025.03.12

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 20장. 메모리 관리

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다   https://product.kyobobook.co.kr/detail/S000001223395 뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고뇌를 자극하는 윈도우즈 시스템 프로그래밍 |product.kyobobook.co.kr https://www.inflearn.com/course/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/dashboard [지금 무료]뇌를 자극하는 윈도우즈 시스템 프로그래밍 강의 | 한빛미디어 - 인프런한빛미디어 | , [사진] 1. 강좌 소개 한빛미디어(주) 에서 발간한 '뇌를 자극..

IT공부/IT서적 2025.03.11

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 19장. 비동기 I/O와 APC

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다   https://product.kyobobook.co.kr/detail/S000001223395 뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고뇌를 자극하는 윈도우즈 시스템 프로그래밍 |product.kyobobook.co.krhttps://www.inflearn.com/course/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/dashboard  [지금 무료]뇌를 자극하는 윈도우즈 시스템 프로그래밍 강의 | 한빛미디어 - 인프런한빛미디어 | , [사진] 1. 강좌 소개 한빛미디어(주) 에서 발간한 '뇌를 자극..

IT공부/IT서적 2025.03.01

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 18장. 파일 I/O와 디렉터리 컨트롤

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다   https://product.kyobobook.co.kr/detail/S000001223395 뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고뇌를 자극하는 윈도우즈 시스템 프로그래밍 |product.kyobobook.co.kr https://www.inflearn.com/course/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/dashboard [지금 무료]뇌를 자극하는 윈도우즈 시스템 프로그래밍 강의 | 한빛미디어 - 인프런한빛미디어 | , [사진] 1. 강좌 소개 한빛미디어(주) 에서 발간한 '뇌를 자극..

IT공부/IT서적 2025.02.27