Priv's Blog
C++의 하드웨어 대응 본문
1. 하드웨어 친화적인 C++
C++는 하드웨어에 대한 직접적인 대응을 제공하는 언어입니다.
기본적인 연산자들은 하드웨어가 제공하는 기능으로 구현되어 있으며, 대부분 기계어 하나로 처리됩니다.
하드웨어가 제공하는 기능이나 기계어 하나로 처리된다는 부분에 대한 이론적인 개념은 컴퓨터 구조 또는 운영체제를 참고하면 됩니다.
만약, int x와 int y를 더하는 x + y 연산을 명령한다면 이는 머신 명령어(instruction) 하나로 처리됩니다.
C++의 구현은 머신의 메모리를 일련의 메모리 위치라는 관점에서 바라보며, 그 메모리 위치에 객체를 저장, 포인터로 가리키는 형태로 동작합니다.
위 사진에서 p의 값은 현재 포인터로 가리키고 있는 3이 됩니다.
v는 배열처럼 보이지만, 실제로는 C++가 메모리상의 연속된 객체들을 나타낸 것입니다.
만약 p의 값이 4가 된다면, 단순히 포인터가 가리키는 주소가 4의 주소로 바뀔 뿐입니다.
이처럼 C++는 언어의 구성 요소가 하드웨어와 단순하게 대응되기 때문에 로우 레벨에서 탁월한 성능을 발휘할 수 있습니다.
즉, C++는 수학을 머신 모델로 삼는 것이 아니라 컴퓨터 하드웨어를 삼고 있는 언어입니다.
수고하셨습니다!
'Dev. Study Note > C++' 카테고리의 다른 글
2D Array Row, Column (0) | 2024.01.23 |
---|---|
friend 키워드 (0) | 2024.01.10 |
클래스 (0) | 2023.12.27 |
구조화된 바인딩 (0) | 2023.12.24 |
auto 타입을 사용할 '특별한 이유' (0) | 2023.12.17 |
Comments