if 조건문에서 &&시...
글쓴이: na7jun8gi / 작성시간: 월, 2009/11/30 - 11:23오전
C에서 if (condition1 && condition2)일때
condition1이 거짓이라면 condition2와는 상관없이 조건문을 나오는것 아닌지요?
어떤 다른 이유에 의해 condition2의 조건을 먼저 확인한다든지 condition1가 거짓이지만
condition2를 확인하는 경우가 있을까요?
의심할 여지없이 그런경우가 없다고 알고 있었는데...컴파일러나 다른 것에 의해 그렇게 되는
경우가 있지 않을까 하는 분들이 계셔서...
그런 경우가 있을까요?
Forums:
임베디드라면 그럴
임베디드라면 그럴 지도 모릅니다.
고로 새로운 머신, 새로운 프레임웍을 만날 때마다 새로 매뉴얼 통독 하셔야죠. 매뉴얼에 없으면 직접 테스트.
하나만 제시해 주시면 안될까요?
답변감사합니다~^^
그런데 혹시 임베디드에서 말씀해주신것처럼 사용되는곳 하나만이라도 소개해 주심 안될까요?
실제로 그렇게 사용되어진곳이 알고 싶습니다.
C언어에서는 short
C언어에서는 short circuit evaluation이 표준일겁니다.
없습니다. 임베디드
없습니다. 임베디드 용 C이든 뭐든.. 표준을 따르는 C 컴파일러라면, 그런 경우 없습니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
임베디드에서 그
임베디드에서 그 표준이 종종 무시되는데, 굳이 따지자면 C-style api 가 C 처럼 제시되기 때문이죠.
어떤 임베디드 C
어떤 임베디드 C 컴파일러나 환경에서 short circuit이 무시되는가요? 아직까지 본적이 없는데.... 혹시 예를 들어주실 수 있는 컴파일러나 환경이 있습니까?
Neogeo - Future is Now.
Neogeo - Future is Now.
그건 C언어라고 볼 수
그건 C언어라고 볼 수 없지요.
그리고 컴파일러 개발자 입장에서 short circuit이 어려운 기술이 아닙니다.
엄밀히 말하면 더 쉽죠. ( short circuit으로 안하려면 중간중간 결과를 저장해놔야합니다. )
임베디드에서 꽤 개발을 해봤지만, short circuit으로 구현되지 않은 컴파일러는 못봤습니다.
Complete evaluation인 환경은 뭐가 있을까요?
답변주신 모든 분들께 감사드립니다.
그런데, short circuit이 무시되는 환경을 찾다가 Complete evaluation인 환경이나 컴파일러는 뭐가있을까라는
궁금이 생겼는데 해결하지 못했습니다.물론 전자도 찾지 못했습니다. ㅡ.ㅜ;
Complete evaluation가 적용되는 환경이나 컴파일러 아시는분 답변 좀 부탁드립니다.
음...
새로 언어를 디자인 하지 않는한에는 찾기 힘들 것 같네요.
http://stackoverflow.com/questions/1232603/do-all-programming-languages-have-boolean-short-circuit-evaluation
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
Pascal, 초기 C
제가 알기로는 C 개발 초기에 ||, && 이 없었고, |, & 가 논리연산자로 쓰였다는군요.
그래서 우선순위를 늦춰놨고, 그로 인하여 지금 비트연산자로 쓰는데 괄호가 없으면 이상해진다는...
저는 pro-c 익힌
저는 pro-c 익힌 사람하고 c 컴파일러 관련해서 논쟁하다가
스펙 문서 보고 역시 임베디드는 (기대를 배신)안 하는 게 없구나 싶어서(static 초기화라든가)
이런 걸 익히느니 맘 편하게 정통 C 나 파자, 한 사람이라서
수많은 임베디드용 컴파일러에 대한 warning mind 를 갖고 있습니다.
그래서 임베디드가 C 표준을 반드시 따를 거라는 얘기는 현실에 맞지 않다고 얘기하는 것입니다.
short circuit 관련해서도 있는지 없는지 모르지만,
섣불리 재단하지 말고 직접 확인해 두는 것이 안전하다는 취지의 글을 쓴 것인데,
제가 반례의 경우를 알고 있다며 글을 쓴 것으로 비춰진 모양인가 보군요..
(그러니까, 임베디드는 하드웨어 때문에 C 비스무리한 컴파일러를 만들어서 이리저리 비틀어 논 걸 보자니 짜증나서 아직까진 PC 용만 사용하고 있습니다.)
댓글 달기