C 에서 perl 식 조건 제어
글쓴이: macros / 작성시간: 수, 2009/04/01 - 1:52오후
int A=1
int B=1
if(A==B) printf("true\n");int A=1
int B=1
(A==B) && printf("true\n");첫번째 방식과 두번째 방식이 차이점이나 속도차이가 있을까요?
두번째는 보통 perl 에서 자주 사용하는 방식인데
C 에서도 컴파일은 잘 됩니다.
단, warning: value computed is not used. 이란 경고 메시지를 주던데 찜찜하더군요.
Forums:


...
정상적인 컴파일러라면 속도 차이는 없을 거고, 다만 코드를 관리하는 사람의 스트레스 지수가 좀 많이 올라갈 것 같습니다.
펄에서 자주 사용하다니요
(A==B) && printf("true\n");
A && B || C;
대부분의 언어에서 가능한 표현이지만,
제가 아는 어떤 언어에서도 저 표현을 즐겨 쓰지는 않습니다.
Perl도 마찬가지구요.
이건 절대 'perl식 코드' 같은게 아닙니다.
오히려,
print "true\n" if A == B;
라는 구문이 가능한데도 불과하고, 가독성을 위해
if (A == B) { print "true\n" }
이렇게 쓰도록 권고하기도 합니다.