c 언어 switch 어 셈 블 리 의 실현
switch 문장
1.정방 향 인 코딩 시 switch 문 구 는 if 문장의 약자 로 볼 수 있다.

2.break 가 switch 문장의 묘 용
1.switch 에 3 개의 분기 가 존재 할 때

브레이크 를 지 울 때.

2.switch 문장의 어 셈 블 리
1.switch 에 3 개의 분기 가 존재 할 때
#include<stdio.h>
void Function(int x) {
switch (x) {
case 1:
printf("1");
case 2:
printf("2");
case 3:
printf("3");
default:
printf("4");
}
}
int main() {
Function(2);
return 0;
}

이 때 switch 의 어 셈 블 리 코드 는 if 구문 과 다 름 이 없 음 을 알 수 있 습 니 다.
네 개의 if 문구 가 있 을 때 큰 표 가 생 성 됩 니 다.

2.switch 구문 에 네 개의 분기 가 나타 날 때 컴 파일 러 는 큰 표 가 생 긴 다.
단계:
1.들 어 오 는 수 를 1 에서 빼 고 비교한다.이 매개 변수 가 switch 문장의 최대 상수 보다 많 는 지 판단 합 니 다.즉,매개 변수 가 default 에 직접 들 어 가 는 지,아니면 case 에 들 어 가 는 지 판단 합 니 다.
2.매개 변수<=max 라면 레지스터 로 이 값 을 유지 합 니 다.표현 식 에 대 입 하여 큰 시 계 를 통 해 해당 주소 로 직접 이동 합 니 다.
주의 하 다.
분기 가 네 개 보다 적 으 면 switch 는 의미 가 없고 컴 파일 러 는 if...else...문 구 를 누 르 면 어 셈 블 리 를 합 니 다.
케이스 후의 상수 순 서 는 큰 표 의 생 성 에 영향 을 주지 않 습 니 다.
상수 값 의 순 서 를 흐 트 러 뜨리 고 어 셈 블 리 코드 를 관찰 하 다.
정방 향 코드

어 셈 블 리 코드

여기 서 볼 수 있 습 니 다.
연속 10 개 중 1 개 또는 2 개 를 지우 고 어 셈 블 리 에 변화 가 있 는 지 살 펴 본다.
정방 향 코드 는 이 렇 습 니 다.

여기 서 몇 개의 주소 가 같은 지 볼 수 있 습 니 다.

기본 주 소 를 가리 키 는 것 을 발견 할 수 있 습 니 다.

3.switch 에 여러 갈래 가 존재 하고 상수 연속 성 이 상대 적 으로 높 지 않 을 때

작은 시계 가 생 성 됩 니 다.

단계:
1.들 어 오 는 매개 변 수 를 최소 값 으로 줄 이 고 최대 값 에 비해 크 면 기본 적 인 곳 으로 이동 합 니 다.그렇지 않 으 면 차이 점 으로 작은 시 계 를 찾 은 다음 에 큰 시 계 를 찾 습 니 다.
보충:케이스 후의 상수 차이 가 클 때
컴 파 일 러 는 if...else...에 따라 어 셈 블 리 를 진행 합 니 다.
c 언어 switch 어 셈 블 리 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 c 언어 switch 어 셈 블 리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.