IT 대장간
[C]함수와 변수[전역, 지역, 매개] / return 동작 본문
기본적인 내용이니 짧게 정리.
파이썬과 다르게 C는 메인함수 밑에다가 함수정의 하고 돌리니까 에러 > 상단 선언, 하단 정의
1. 변수
소개할 변수는 3가지이다.
1)전역변수
: main 함수 외부에서 선언된 변수, 내부 어디서든 참조 가능

2)지역변수
: 일정한 범위내에서만 참조가 가능한 변수라고 보면된다.
하나, 이렇게 자주 사용되는 for문 안에서 생성한 i라는 변수를 for문 밖에서 부를 수 없다는 특징

둘, 함수 내에서 생성한 변수도 참조할 수 없다.

3) 매개변수
: 함수 사용시 입력받는 전달 값

: buyItem이라는 함수 정의에서 보이는 것처럼 int값 cost,와 cnt 값을 받고 해당 값을 통해 필요한 값에 따라 연산을 수행하는 함수이다.

2. 함수 및 return
: 함수를 정의 및 선언할때 볼 수 있는 void 와 (매개변수) 값에 대한 설명이다.
1)void는 리턴값이 없다.
: 좀 더 확실한 내용은 return값을 적어주면 안된다.

: 필요에 따라 함수 내부에서 자체적인 연산과정을 통해 출력문을 넣는 것이 일반적인 경우라 생각한다.
즉, void 함수는 최종 결과값을 위한 과정으로 활용되는 경우가 많다고 생각
2) return값이 반드시 필요한 경우
: 함수 정의 및 선언시 void형식이 아닌 형태로 함수를 생성할 경우 return 문이 반드시 있어야한다.


: return 값을 정의문에 입력하고 함수를 실행시켜보면?

위 사진을 통해 해당 함수를 실행시켰을때 a라는 변수에 return값인 1을 반환하는 걸 알 수 있다.
## return값을 두개로 설정한다면?

실험이지만 return값을 정의문에 두개 적어주면 어떻게 될까?
에러는 없다 실행도 잘된다.
결론은 "의미 없음" 이다
하지만, 정확히는 이럴 경우 순차적으로 코드 실행중 처음 return 값을 처음 만나는 순간 그 이후 작성된 코드는 모두 무시하고 그 즉시 함수를 종료한다.
여기서 궁금할만한 사항이 한가지 더 있다.
## 왜 메인함수는 리턴값이 없는데 잘 돌아가지?
: main은 특별하다. 각 프로젝트 내에서 메인함수가 여러개면 에러가 난다는 것부터 이미 특별한 함수.
하지만 return 0; 를 적어주며 마무리 해도 되지만 없어도 실행이 잘된다.
이유는 빌드시 자동적으로 reuturn 0; 이 입력된다고 생각하면 된다.
개발자일 경우 팀내 코딩 스타일에 따라 선택하면 되지 않을까싶다.

'Programing > C & C++' 카테고리의 다른 글
| Typedef 사용법 (1) | 2021.02.23 |
|---|---|
| 입력받은 변수의 값 변경과 포인터 , SWAP (2) | 2021.02.22 |
| 2차원 배열 입력받아 만들기 [INT] (0) | 2021.02.22 |
| 포인터와 배열 [문자] (1) | 2021.02.19 |
| [C]배열과 포인터의 기본 문법 (주소 값 변경 및 이해) (0) | 2021.02.19 |