[질문] if~else if의 depth와 switch의 case 갯수
글쓴이: clublaw / 작성시간: 토, 2005/02/19 - 1:04오후
QNA보다는 이곳이 더 어울릴것 같아서
질문이지만 이곳에 올렸습니다.
if (~) else if (~) else if (~) . . . else if (~)
이렇게 윈도우 VC++ 6.0에서 컴파일하니 255개까지 되었던걸로 기억합니다.
256개부터 컴파일 에러가 뜬것 같군요.
그래서 졸업식날(저 이번에 졸업했어요) 후배 연구실에서
문득 이런생각이 들더군요.
"switch에는 몇개의 case가 가능할까?"
그래서 테스트 해봤는데요.
int i; switch(i) case 1....32766
이렇게 테스트해보니 컴파일 되더군요. -_-; 시간은 쪼금 걸렸습니다.
그래서 32767부터는 에러가 날거라 예상했는데
32768,32769도 되더군요.
그래서 -32768 ~ 32767이 int의 범위라서 case를 두배로
늘려서 해보자고 case 1: ; ~ case 65536: ; 까지 엑셀에서 만들어서
ctrl+c & ctrl+v 할려고 했는데 여기서 뻗어버리더군요. ㅎㅎ
그래서 두배의 경우는 해보지 않았습니다.
[질문1]혹 switch에 case가 몇개까지 가능한지 아시는분 계신가요?
(자신의 PC가 성능이 좋다면 한번 도전을...;;;)
주워들은 이야기로는 switch가 내부적으로는 goto문과 같이 동작한다고 들었습니다.
[질문2]switch와 유사한 기능으로 보다 더 빠른 명령어가 있을까요?
이상 초보의 엉뚱 생뚱 맞은 질문이었습니다.
Forums:
표준에서는 정의하지 않고, 아마 구현에 따라 다를 것으로 예상되는 군요.
표준에서는 정의하지 않고, 아마 구현에 따라 다를 것으로 예상되는 군요.
---
http://coolengineer.com
한 translation unit에서 적어도 제공해야될 limit들이 표
한 translation unit에서 적어도 제공해야될 limit들이 표준에 있긴 합니다.
몇 가지 적어보면...
따라서 C 표준을 준수하는 컴파일러라면 적어도 1023개의 case label을 만들 수 있지만... 가능한 이러한 것은 피하도록 노력해야 합니다.
[/]C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/