RadarURL

메뉴 건너뛰기

해결 안된 질문

C언어에서 whlie문 사용할때와 if+goto문 사용할때의 차이점

김민수(12) 2013.06.02 18:47 Given Points 5
추천 수 ( 4 )

컴퓨터 구조 시간에 어셈블리 코딩을 하다보면 반복문을 goto문과 if문을 사용해서 만들게 됩니다.  어셈블리에는 반복문이 없기 때문이죠.


http://ideone.com/l4V2Tu

http://ideone.com/uNtg3N


간단히 말하면 대강 이 두개의 소스코드의 차이점정도이죠.


for문과 if+goto문을 비교했을때,

break나 continue를 goto문으로 대체했을때 기계가 동작하는데에 있어 어떤 차이점이 있나요?

속도에도 영향을 미치나요?

답변등록

답변 (1)

심석보(02) 2013.06.02 21:27

<정확하게 기억하고 있는건 아닌데.>

IF 문이던 FOR 문이던간에 어차피 어셈단에서는 GOTO-라기보다는 점프문이였던거 같긴한데..그게 중요한게 아니고-로 변환 될 꺼고. 


그런 의미에서 실행 단에서의 속도차이가 그렇게 까지 들어나진 않을 꺼라는걸 넘어서. 

어차피 그런거 신경 써봐야 컴파일러의 최적화 옵션에 의한 영향이 더 클꺼라고 생각합니다

. 어차피 C언어상의 IF-GOTO 문이. 어셈이랑 통째로 매칭되는지도 좀 의문이고 말이지요. 


그리고 속도 문제라면 아주 한정적인 시스템이 아니라면. 그정도 까지 속도최적화가 필요한 경우가 없을꺼에요 

M/M가 안나올껍니다. PM한테 혼나요.


그리고 한정시스템이라고 해도 반복문이냐 GOTO냐를 따지기 전에 반복문의 횟수를 줄이거나 알고리듬을 최적화 하는 쪽이 더 우선이고.

정말 그정도 까지 속도 문제가 나올 정도면 C언어 말고 어셈단에서 최적화를 해야할 상황일꺼에요.

3 person rated this as good
위로