저의 경우는 무엇인가 판단의 경우에는 isxxxx()의 형태로 작성하고 이의 반환값을 0(false), 1(true)로 합니다. 그러나 어떤 부분 작업을 하는 함수라면 함수이름은 그 실행하는 내용을 표현하는 단어를 사용하고 반환값을 음수(에러코드), 0 및 양수(실제 반환값)으로 사용하고 있습니다.
성공과 실패 두가지 유형의 리턴형이라면
0 을 성공으로 해주어야 유리합니다. 또한 잘생각해보면 매우 직관적이기도 하구요..
일단 에러가 없었다.. 즉,, 에러가 0 이다.. 이런뜻으로 받아들여지지 않나요?
그리고.. 성공은 단한가지(자기가원했던결과) 경우지만..
실패는 매우여러가지겠죠.. 따라서 실패가 어떤 값을 가져주는것이 유리합니다.
즉, 실패는 -1, -2 ... 따위로 여러가지로 줄수 있다는거죠.. 값을 가지는것이 실패란것이죠.. 에러가 존재한다는의미. 물론 양수값도 그러하게 사용할수 있겠습니다만..
전 주로 음수를 줍니다.
그럼 양수?는 어디다가쓰는가?
단순 성공판단여부의 함수가 아니라 어떤결과의 일부를넘길때 사용되죠...
저는 주로
저는 주로 실패했을때 -1 성공했을때 0을 리턴하도록 만듭니다. 대부분의 함수가 이렇게 만들어져 있다보니 따라하는 이유도 있겠지만 에러처리 할때 if문을 조금이라도 줄일 수 있어서 이렇게 합니다.
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
작성하시는 분의 취향이랄까?
저의 경우는 무엇인가 판단의 경우에는 isxxxx()의 형태로 작성하고 이의 반환값을 0(false), 1(true)로 합니다. 그러나 어떤 부분 작업을 하는 함수라면 함수이름은 그 실행하는 내용을 표현하는 단어를 사용하고 반환값을 음수(에러코드), 0 및 양수(실제 반환값)으로 사용하고 있습니다.
-----<꼬릿말 절취선 시작>-----
춥다,... 동전사절, 지폐환영.
복 받으실 거야요~
-----<꼬릿말 절취선 끝>-----
-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----
취향이겠지만.대부분 0을 성공이라고 생각하지 않나요?0을
취향이겠지만.
대부분 0을 성공이라고 생각하지 않나요?
0을 실패로주는사람이 거의 드문거 같은데...
에러가 없었다는의미에서 0..
----------------------------------------------------------------------------
유닉스계통은
전통적으로 0이 성공이고 음수값이 실패입니다.
Windows계통은
전통적으로 nonzero가 성공이고 0이 실패입니다
윈 API 함수들도 많은
윈 API 함수들도 많은 함수들이 0이 성공 -1이 실패인데요.
----------------------------------------------------------------------------
그런건가요?
몰랐네요; 유닉스 윈도우 구분 없이
1 True
0 False
인줄 알았는데....
그럼 유닉스에서 반환값이
Bool형일 경우에(예전에 16비트였던가.....Bool형이 0과 1만 표현가능할적에)
0과 1만 쓸수 있는데
어떤것을 어느쪽에 쓰나요?
그 당시는 bool을 따로
그 당시는 bool을 따로 정의하는 개념이 없었죠...
typedef int BOOL; 이런 것도 안하고 다들 int를 리턴했었죠.
그러니까 bool값의 의미를 따로 갖지 않았던 거라 보는게 옳지요.
맞나? -_-
의도에 따라서
리턴값을 (1) 그냥 성공과 실패로만 사용하거나
(2) 성공과 실패 + 실패이유로 사용하느냐에 따라 구분하겠습니다.
(1)의 경우 실패이유를 제공하는 변수나 함수를 따로 두어야 한다.
라이브러리나 클래스 형태로 작성할 경우 많이 사용하는 형태입니다.
(2)의 경우 실패이유를 따로 제공할 필요가 없다. 그 함수 하나만
위한것이거나 여러개를 묶어 제공하기에 어려울 경우겠습니다.
유닉스의 man section 2에 해당하는 시스템 콜들은 errno, perror(), strerror() 함수를 공통적으로 사용합니다.
원하지 않는 결과가
원하지 않는 결과가 발생하면 throw new Exception() 해버립니다 ;)
Quote:원하지 않는
와... 보통 try{...}catch(Exception){...}하지 않나요??
특이하게 try{...}catch(Exception*){...}하시네요 ㅇㅅㅇ
참 거짓일때는
참 거짓일때는 참일때 1 거짓일때 0이고,
성공 실패일때는 성공일때 0 실패일때 -1입니다.
함수.
저도 참 1 거짓 0
성공 0 실패 -1을 따르기는 하지만.
웬지 아쉬운 느낌이 들더군요,
참,성공 : 1
거짓,실패 : 0
으로 통일되었으면 더 좋았을거란 생각때문에요.
그래서 아쉬운 대로 다음과 같이 함수 RETURN TYPE을 정의해놓고 사용합니다.
typedef enum{
RETURN_T_SUCCESS = 0,
RETURN_T_FAIL = -1,
}RETURN_T;
성공과 실패 두가지
성공과 실패 두가지 유형의 리턴형이라면
0 을 성공으로 해주어야 유리합니다. 또한 잘생각해보면 매우 직관적이기도 하구요..
일단 에러가 없었다.. 즉,, 에러가 0 이다.. 이런뜻으로 받아들여지지 않나요?
그리고.. 성공은 단한가지(자기가원했던결과) 경우지만..
실패는 매우여러가지겠죠.. 따라서 실패가 어떤 값을 가져주는것이 유리합니다.
즉, 실패는 -1, -2 ... 따위로 여러가지로 줄수 있다는거죠.. 값을 가지는것이 실패란것이죠.. 에러가 존재한다는의미. 물론 양수값도 그러하게 사용할수 있겠습니다만..
전 주로 음수를 줍니다.
그럼 양수?는 어디다가쓰는가?
단순 성공판단여부의 함수가 아니라 어떤결과의 일부를넘길때 사용되죠...
----------------------------------------------------------------------------
댓글 달기