fopen(file?file:(_u8*)(ack_mode?SYNACK_DB:(rst_mode?RST_DB:(open_mode?OPEN_DB:SYN_DB))), "r");
고수님들 조언점 ㅜㅜ
3항 연산자를 사용한 겁니다. ? : 이게 3항 연산자.
풀어 쓰면
if (file) fopen(file, "r"); else if (ack_mode) fopen((_u8*)(SYNACK_DB), "r"); else if (rst_mode) fopen((_u8*)(RST_DB), "r"); else if (open_mode) fopen((_u8*)(OPEN_DB), "r"); else fopen((_u8*)(SYN_DB), "r");
--------- 간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락 셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학 여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
저정도 쯤 되면 설령 3항연산자를 써도 줄빠꾸고 들여쓰기 해야할 것 같은데요. 아~, 그러면 if-else 안 쓰고 3항연산자 쓴 의미가 없나?...
fopen의 일반적 사용시 다음과 같죠..
fopen("파일이름", "옵션");
그렇다면 다음 코드는 경로를 포함한 "파일이름"이 되겠습니다...
file?file:(_u8*)(ack_mode?SYNACK_DB:(rst_mode?RST_DB:(open_mode?OPEN_DB:SYN_DB)))
위와 같은 경우는..
A?B:C
라는 형태를 지니고 있는데요... A가 만약 참이면 B를 반환하고, 거짓이면 C를 반환하는 거겠죠..
코드를 풀어놓은 형태는 'IsExist' 님께서 하신 것이 맞습니다...
번외적인 말이지만.. 저런 코드 상당히 싫어합니다..
3항 연산자 보기에 직관적이고 코드가 간결해져서 저도 좋아하지만.. 저런 식으로 디자인하면 --;; 읽는 분들이 힘들어 집니다.. 자기만에 코드가 되버릴 가능성이 매우 높습니다..
게다가 저런 코드가 여기저기 있을경우 에러가 나서 Debugging 하기도 .. 엄청 힘들어질 가능성도 높습니다..
한 라인에 --; 에러 발생 요인을 매우 많이 포함하고 있기 때문입니다.... 그렇다고 저것보다 나은 방법이 뭐냐고 하신다면...
정답은 없다고...;;;; OTL 수고하세요 :>
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
3항 연산자를 사용한
3항 연산자를 사용한 겁니다. ? : 이게 3항 연산자.
풀어 쓰면
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
완전 LISP 같군요.
저정도 쯤 되면 설령 3항연산자를 써도 줄빠꾸고 들여쓰기 해야할 것 같은데요.
아~, 그러면 if-else 안 쓰고 3항연산자 쓴 의미가 없나?...
흠 코드가 :<
fopen의 일반적 사용시 다음과 같죠..
그렇다면 다음 코드는 경로를 포함한 "파일이름"이 되겠습니다...
위와 같은 경우는..
라는 형태를 지니고 있는데요...
A가 만약 참이면 B를 반환하고, 거짓이면 C를 반환하는 거겠죠..
코드를 풀어놓은 형태는 'IsExist' 님께서 하신 것이 맞습니다...
번외적인 말이지만..
저런 코드 상당히 싫어합니다..
3항 연산자 보기에 직관적이고 코드가 간결해져서 저도 좋아하지만..
저런 식으로 디자인하면 --;; 읽는 분들이 힘들어 집니다..
자기만에 코드가 되버릴 가능성이 매우 높습니다..
게다가 저런 코드가 여기저기 있을경우 에러가 나서 Debugging 하기도 ..
엄청 힘들어질 가능성도 높습니다..
한 라인에 --; 에러 발생 요인을 매우 많이 포함하고 있기 때문입니다....
그렇다고 저것보다 나은 방법이 뭐냐고 하신다면...
정답은 없다고...;;;; OTL 수고하세요 :>
댓글 달기