return을써야하는 이유에대해서.
찬솔
현재 열강 c언어함수부분 공부중입니다.
슬슬회사에서도 함수부분 끝내면 프로젝트 줄 것 같군요..긴장되라.함수를 배우다보면서, 예전부터 가지고 있었던궁금증이 더 증폭되더군요.'왜 항상 return을 쓸까'라는궁금증이..
그 전에 반복문이나조건문 짤때도 항상 마지막에 리턴 0이 있어서
그냥 해주나보다 하고 쓰긴했는데
함수쪽에 넘어오니 이 궁금증을 해결 안하곤 제대로 이해를못할 것 같아서요.간단히 책에나온 예를 들어보겠습니다.
add 함수라는 새로운함수를 만들때,#includestdio.h
int add(int i, int j)
{
int result = i+j;
return result ;
}
소스가 이런데, 왜 꼭 마지막에 return result 를 넣어주는지 궁금하네요
알기 쉽게 설명해주시면 감사하겠습니다.
-
소율
물론.. return value 없이 add(i, j) 에서 결과 result 를 전역변수로 선언해 두어도 결과를 알수 있지만 이렇게 되면 add 함수의 결과는 항상 result 라는 전역변수에 저장되기 때문에 함수 효용성이 떨어지죠.. add(i, j); 이렇게 호출하는것 보단.. a = add(b, c); d = add(e, f); 처럼 사용하는게 코드 사이즈도 줄이게 되는거죠.. ^^;; 장황하게 설명했는데.. 잘 이해가 가실지 모르겠네요..
-
주나
값을 돌려 주지 않는 함수역시.. 중간에 return 을 만나면 함수 수행을 종료하고 다시 호출된 시점으로 돌아가기 때문에 자기가 원하지 않는 부분이 수행되는것을 막을수 있죠.. return 은 꼭 값이 있어야만 하는것은 아닙니다. 물론 질문하신 함수 같은 경우엔 [마스토준] 님 말씀처럼 계산 결과를 함수 호출된 시점으로 돌리는게 목적이죠..
-
이치코
수학에서 f(x) = y 라는 식으로 함수 f에 x를 집어 넣으면 연산결과를 y에 대입해주는것처럼 C언어에서의 함수도 특정 값을 돌려줍니다. (혹은 돌려주지 않을 수도 있습니다.) 값을 돌려주기 위해서 return 시켜주는거죠!
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694503 | 프로그램 연산 후 바로 종료되는 현상 (6) | Judicious | 2025-05-11 |
2694450 | while문질문입니다. (1) | 허리품 | 2025-05-11 |
2694420 | C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) | 은새 | 2025-05-11 |
2694370 | 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 | 들찬 | 2025-05-10 |
2694339 | putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) | 미르 | 2025-05-10 |
2694316 | 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) | 나빛 | 2025-05-10 |
2694285 | 언어 공부하는 과정 좀 추천해주세요! (1) | 아빠몬 | 2025-05-09 |
2694258 | 카운터.. 질문입니다. (4) | 하늘빛눈망울 | 2025-05-09 |
2694229 | 단순한 질문이요 (8) | 여름 | 2025-05-09 |
2694202 | 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) | 미나 | 2025-05-09 |
2694145 | 화면깜빡임을 없애고 싶은데요... (1) | 어서와 | 2025-05-08 |
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |