본문 바로가기
C++/기초

C++ 기초 : Visual Studio 단축키 및 기능

글: 시플마 2024. 2. 18.

구문 한 줄을 주석 처리하려면
슬래시를 두 개 입력하면 되었죠.

여러 줄을 한 번에 주석 처리하려면
구문을 드래그하고 Ctrl + k를 누르고
Ctrl을 유지한 채 c를 누르면 됩니다.

여러 줄의 구문을 주석 해제하는 방법은
구문을 드래그하고 Ctrl + k를 누르고
Ctrl을 유지한 채 u를 누르면 됩니다.
 
 
 
 


 
 
 
Alt를 누른 채로 드래그를 하면
원하는 영역만 드래그할 수 있습니다.

아래 영상과 같이
여러 변수의 값을 한 번에 수정할 때 사용할 수 있겠죠.

 








다음은 디버깅 관련 단축키를 알아봅시다.

디버깅을 시작하는 단축키는 F5입니다.

디버깅은 중단점을 만나면 일시적으로 중단합니다.
이 중단점을 생성하는 단축키는 F9입니다.
클릭한 줄을 기준으로 중단점이 생성되며,
중단점을 제거하는 단축키도 마찬가지로 F9입니다.
 
 
 
디버깅은
프로그램이 어떻게 진행되는지 파악할 때 유용합니다.

예를 들어 아래 디버깅 화면을 보면


24번 째 줄에 중단점을 찍고 디버깅을 한 모습입니다.

중단점 바로 위 코드(23번 째 줄)까지 실행되었겠죠?

맨 아래 ‘로컬’이라는 창을 보면
변수 i에는 1이, 변수 j에는 2가,
변수 number에는 300이 대입된 것을 알 수 있습니다.
 
 
 
이번에는 19번 째 줄에 중단점을 걸고 디버깅하겠습니다.


로컬창에는 main 함수에서 사용할 세 개의 변수가
나오고 있고 아직 원하는 값이 대입되지 않은 상태입니다.
19번 째 줄에 중단점을 거는 경우
18번 째 줄까지만 디버깅하기 때문입니다.

여기서 두 가지 의문점이 생깁니다.

18번 째 줄까지만 디버깅하는데
나중에 사용되는 변수가 미리 표시되는 점과,

로컬창에서 변수값을 확인해 보면 원하는 값은 아니지만
지정하지 않은 값이 대입되어 있는 점입니다.

첫 번째 의문점에 대해 말씀드리면,
변수를 선언한 줄까지 가지 않아도
사실 main 함수가 실행된 시점부터
main 함수에서 사용할 변수들의 자리를
메모리에 미리 할당합니다.

두 번째 의문점도 위에 내용과 이어집니다.
메모리에 변수 자리를 미리 할당한다고 했죠?
그러나 이때는 값을 대입하라는 코드를 만나기 전이므로
메모리에 원래 있던 쓰레기값이 대입되어 있는 것입니다.

우리가 현실에서도 어떤 땅에 건물을 짓는다고 했을 때
그 땅에 원래 있던 잡초, 쓰레기 등이 있죠?
그런 거라고 생각하면 됩니다.



19번 째 줄에서 더 실행하려면
F10 또는 F11을 누르면 됩니다.

둘의 차이는 F10은 프로시저 단위로 실행하는 단축키이고
F11은 한 단계씩 코드를 실행하는 단축키입니다.

동작을 직접 살펴보며 알아봅시다.
 
 
F10을 한 번 눌렀더니
21번 째 줄로 화살표가 이동했습니다.
이 화살표는 ‘다음 진행할 코드는 여기다.’라는 의미입니다.
즉 20번 째 줄까지 코드가 실행되었다는 의미죠.

F10을 한 번 누름으로써
19번 째 줄의 코드가 모두 실행된 것입니다.
로컬창에서 값을 확인해 보면
변수 number에 300이 대입된 것을 확인할 수 있습니다.


변수 i와 j는 아직 실행되기 전이라 쓰레기값이 들어 있네요.


 
이번애는 F11을 눌러 한 단계씩 코드를 실행해 보죠.

아래 코드를 확인해 보면
화살표가 13번 째 줄로 갔습니다.
왜일까요?


19번 째 줄은 한 줄이지만 세부적으로 보면
여러 단계로 나누어져 있습니다.

먼저 Add 함수를 들어가기에 앞서
Add 함수에서 사용될 int형 변수 num1과
int형 변수 num2, 이 두 변수가 들어갈 공간을 마련합니다.
(참고로 함수 옆, 괄호에 있는 변수들은 해당 함수 내에서만 작동하는 지역 변수입니다.)

이 동작이 바로 F11을 눌러 한 단계 실행한 동작인 것이죠.

로컬창에 보면
변수 num1과 num2가 나타나는 것을 볼 수 있습니다.
 
 
 
여기서 한 번 더 F11을 눌러 봅시다.

19번 째 줄의 코드를 통해
Add 함수에 100과 200을 보냅니다.


로컬창을 보면 두 변수에 각각 100과 200이 대입되었네요.




F11을 또 눌러 보죠.


육안으로 확인할 수 있는 변화는 없지만,
아마 100과 200을 더한 300이라는 값이
int형으로 반환되기 직전이라고 예상할 수 있습니다.




또다시 F11을 누르고 확인해 봅시다.


Add 함수를 통해 반환된 300이라는 값이 반환되었네요.
이 값이 변수 number에 대입되기 직전일 것입니다.

 
 
 
F11을 다시 누르면


Add 함수를 통해 반환된 300이라는 값이
비로소 변수 number에 대입된 것을 확인할 수 있습니다.

위에 과정을 통해 확인할 수 있듯이
F10은 코드 한 줄을 실행하고
F11은 더 세부적으로 한 단계씩 실행하는
단축키임을 알 수 있습니다.

그리고 F10과 F11, 이 두 단축키는
반드시 디버깅을 시작(F5)하고 사용해야 제대로 작동합니다.
 



 







이번에는 number에 다른 값을 대입하는 코드를 추가한 후
중단점을 두 개 찍고 디버깅을 해 봅시다.

아래와 같이
23번 째 줄과 26번 째 줄에 중단점을 찍겠습니다.

 
 
 
 
 
F5를 눌러 디버깅을 시작하였습니다.

 
24번 째 줄까지 실행되었으므로
변수 number에는 300이 대입된 상태입니다.
 

 
 
 
위 상태에서 다시 F5를 누르면 어떻게 될까요?


F5를 재입력하고
로컬창을 확인해보니 변수 number 700이 대입되었습니다.

이는 25번 째 줄에 있는 Add 함수가 작동하여
700이라는 값이 변수 number에 대입된 것을 의미합니다.
화살표가 27번 째 줄에 있는 것을 보니
26번 째 줄까지 실행한 것이겠죠.

이를 통해 알 수 있는 것은 디버깅 중 현재 시점에서
다음 중단점까지 쭉 실행하고 싶다면  
F5를 다시 누르면 되는 것을 알 수 있습니다.










디버깅 중 디버깅을 종료하고 싶다면
Shift + F5 단축키를 통해 종료할 수 있습니다.





강의 출처 : https://www.youtube.com/watch?v=PFc4g8mxOiI&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&pp=iAQB