• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

c++을 공부하다가 와서 좀 당황스런 질문일지 모르겠지만 조심스레 해봅니다.

21.08.01 21:01 작성 조회수 105

0

이전 switch문 강좌에서 이랬나? 하며 넘어갔다가 다시 생각해보니 c++에서는 분명 문자열이 안되는 게 떠올라서 질문 남겨봅니다.

c++에선 스위치문에서 문자열이 안되던 이유가 롤업 테이블 생성에 있어 인덱스로 지정이 안되서 그랬던 걸로 기억을 하는데 c#에선 이런 부분을 어떻게 극복했길레 문자열을 사용할 수 있는 지 궁금합니다.

답변 1

답변을 작성해보세요.

1

우선 C++이라도 꼭 테이블로 만들어지는 것은 아니고,
정말 if else if else로 컴파일이 될 수도 있습니다. (연속된 정수 값이 아닐 경우)
이런 부분은 컴파일러에 따라 다를 것 같지만,
C# decompiler로 뜯어보면 대략적으로 알 수 있을 것 같네요.
구글에 검색해보니 예시가 하나 있어 첨부 드립니다.

결론 : 매우 무식하네요

강동훈님의 프로필

강동훈

질문자

2021.08.02

홀리 몰리...감사합니다. 항상 스위치문이 if else 문보다 속도적인 측면에서 이득이 크다고 생각해서 스위치문을 쓰는 방향을 추구하는 편이었는데  늘 그런 것만은 아니라는 점과 함께 뭔가 대단한 방식을 썻을 것만 같았던 c#도 까보니 단순 노가다로 만들었다는 걸 보니 신기하네요,