return 값 질문해도될까요?
눈내리던날
질문 제목 : return 값이이상합니다return -1 ,return 1 리턴값을 아무렇게나해도 결과값은똒같이나오는데
왜 굳이 -1을 하는건지 궁금합니다 감사합니다..질문 내용 : #include stdio.h
#define sky skye
int my_strcmp(const char* string1,const char* string2);
void main(void)
{
char string[100];
int ret;
printf(영단어를 입력한후 enter키를치송);
printf(sky를 입력하면 프로그램이 종ㄹ됩니다\n);
do
{
gets(string);
ret = my_strcmp(string,sky);
if(ret==0)
{
printf(%s==%s,ret=%d\n,string,sky,ret);
break;
}
else if(ret0) printf(%s %s, ret=%d\n,string,sky,ret);
else printf(%s %s,ret=%d\n,string,sky,ret);
}
while(1);
}
int my_strcmp(const char* string1,const char* string2)
{
if(*string1 == (int)null && *string2==(int)null)return 0;
while(*string1 != (int)null)
{
if(*string2 ==(int)null) return 0;
if(*string1==*string2)
{
string1++;
string2++;
continue;
}
if(*string1 *string2)return -1;
else return 1;
}
if(*string2 !=(int)null)return -1;
return 0;
}
-
핀아
감사합니다 도움이많이됫습니다
-
반율하
일반적으로 return 0, -1을 구분해서 치는경우는 정상 작동했을경우 오작동햇을 경우를 나타냅니다.
프로그램의 가독성을 올리기 위해서랄까 그런 느낌이죠 어차피 리턴됫다는건 그리고 그값을 딱히 저장하는 경우가 아닌경우엔 함수등을 빠져나가게되있습니다 무엇이 반환되는지는 크게 중요하지 않을거같네요
그래서 어떻게 작동됫는지 알기 쉽게 하기위해 -1과 0을 구분하는겁니다
0의경우 일반적인경우
-1은 오작동
1은 정상작동 정도로 생각할 수 있겠네요 -
청식
반환된 값은 ret변수에 저장됩니다
main함수에서 ret을 대상으로 0과 같은지, 0보다 작은값인지, 0보다 큰값인지 비교하고 있으니 그부분을 보면됩니다