Notice
Recent Posts
05-19 02:03
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Total
관리 메뉴

프로그래밍 잡화점

for에 관한 작은 고찰 (In C) 본문

C, C++ 분석 보고서

for에 관한 작은 고찰 (In C)

Luana7 2022. 3. 11. 20:25

1. for문에서 조건식에 아무것도 안넣으면 무한으로 돌아가는 이유는 역어셈 했을때를 보면 알 수 있다


for에 모든 부분에 (코드블록 내부 포함) 아무 코드도 존재하지 않으면 jmp를 통해서 자기 자신으로 무한 점프를 시도한다
그러나 다른 부분이 하나라도 존재한다면 코드 블록의 시작지점으로 계속 이동하게 된다. (즉, cmp 과정이 존재하지 않는다)
(결론적으로 이렇게 되는 이유는 그냥 컴파일러가 무한 반복을 하도록 만들어놨기 때문이다. 로직에서 생긴 일은 아니다)

2. for 조건문에 상수를 박으면 다음과 같은 일이 일어난다


0을 넣은 경우 : 아예 그냥 nop 처리 해버린다 (nop은 아무것도 하지 않는다는 뜻)
0이 아닌 수를 넣은 경우 : 위에 방식처럼 무한 루프를 돌아버린다

 

= 조건 비교 코드가 생성되지 않는다.

3. 위의 경우의 수를 제외한 경우 for문은 다음과 같이 구성되는 것 같다.

초기식
jmp to 조건식
코드블록
증감식
조건식
if 조건식 is true then jmp to 코드블록

'C, C++ 분석 보고서' 카테고리의 다른 글

struct 반환에 대한 고찰  (2) 2023.04.06
함수의 반환에 대한 고찰  (0) 2022.12.27
main의 반환형에 관한 고찰 (In C)  (2) 2022.05.04
if에 관한 고찰 (In C)  (0) 2022.03.13
bool과 int의 관계 (In C)  (0) 2022.03.12
Comments