본문 바로가기

프로그래밍/C++

(2)
230806 C++ 라이브러리 1. 동적 라이브러리는 '공유 라이브러리'라고도 불리며, 정적 라이브러리의 문제를 해결하기 위해 만들어졌다. 프로그램이 동적 라이브러리와 링크되면, 라이브러리 모듈이 실행 파일로 복사되는 대신 동적 라이브러리가 필요하다는 정보만 기록하여 둔다. 이후 실행 파일이 실제로 실행되어 메모리로 올라가면 동적 라이브러리를 참조하여 필요한 정보를 메모리에 올리게 된다. 이후 다른 프로그램이 실행되며 같은 라이브러리 함수를 참고하고자 하면, 이미 메모리에 존재하는 동적 라이브러리를 참고하여 바로 링크 작업을 하게 된다. 2. 특정 CPU나 운영체제를 위해 최적화된 동적 라이브러리를 사용할 수 있다. 3. dynamic linking은 별다른 옵션을 주지 않으면 운영체제에서 해주며(기본 옵션이 dynamic linki..
[C++] Const 상수 (포인터 상수, constexpr, const_cast) const키워드는 대상을 상수화하여 초기화 이후로 값 수정을 하지 못하게 만드는 키워드입니다. 상수에 대해서는 경쟁 상태가 발생하지 않으며, 프로그램 내의 객체가 값이 바뀔 수 없다는 것을 알면 프로그램을 해석하기가 매우 쉬워집니다. c언어를 주로 사용했던 사람은 매크로를 사용하여 매직넘버를 대체하는 습관이 있는 경우가 있는데, c++에서는 이러한 케이스를 상수로 처리하는 것을 선호합니다. - 매크로는 영향 범위가 너무 넓다 - 매크로보다 상수가 디버깅하기 쉽다 - 상수가 변경에 더 유리하다. (예: const 변수였던 것이 기획 의도 변경 등으로 런타임에 값이 변경되게 바뀌는 경우) 포인터 상수 // 포인터가 가리키는 대상의 값을 변경하지 못하게 막음 const int* val; // 포인터가 가리키는..