Scientia Conditorium
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 4주차 본문
[기본 미션] - 함수의 유형을 정리하여 공유하기
반환형 함수명(매개변수1, 매개변수2, ...)
{
// 함수 실행 코드
// 반환형에 따른 반환값
}
기본적인 함수의 형태는 위와 같다.
반드시 적어줘야 하는 것은 반환형과 함수명이다.
C언어에서 함수는 기본적으로 모두 전역(global) 함수이다. 따라서 어디에서든 접근/호출이 가능하다.
물론 이걸 제한할 수 있는 키워드가 있긴 하다.
C언어에서 사람들이 실수하는 부분 중 하나는 함수 오버로딩이 없다는 것이다.
보통 C/C++을 같이 사용하기 때문에 신경을 쓰지 않는다.
void print(int score)
{
printf("Score : %d\n", score);
}
void print(float gpa) /* 컴파일 오류 */
{
printf("Scroe : %d\n", gpa);
}
위와 같이 한 파일에 동일한 함수명이 있다면 컴파일 오류가 난다.
C언어에서는 함수명을 다르게 만들어주어야 하기 때문에 불편한 부분이 있다.
[선택 미션] - p.198 7-5 직접 해보는 손코딩 예제 테스트 후 apple 출력하고 종료한 화면 캡쳐하기.
왜 무한대로 출력되지 않는지 이유에 대해 생각하고 정리해보기
VS2022에서 예제를 실행해보면 위와 같이 Exception 에러가 발생한다.
에러 메시지에 적혀있는대로 Stack overflow가 발생하였기 때문이다.
fruit() 함수를 호출하고 실행하기 위해 스택 메모리에 일정한 양을 사용한다. 함수가 종료되면 다시 메모리를 반환해야 하는데, 함수는 실행만 하고 종료하지 않으니 스택 메모리를 계속해서 사용하게 되는 것이다.
컴퓨터의 메모리는 무한하지 않기 때문에 더 이상 사용할 메모리가 없다면 오류를 일으키게 되는 것이다.
주차 | Chapter | 기본 미션 | 선택 미션 | 추가 학습 |
1주차 | Chapter 01 ~ 02 | 비주얼 스튜디오 설치 화면 인증샷 |
학습 스케줄 직접 짜고 공유하기 | OpenGL 기본 셋팅 |
2주차 | Chapter 03 ~ 04 | 확인 문제 풀고, 풀이 과정 설명하기 |
Ch.04 도전 실전 문제 풀고 인증샷 | Shader 셋팅 |
3주차 | Chapter 05 ~ 06 | 혼공 용어 노트에 용어 추가 등 노트 활용하고 공유하기 |
p.123 크리스마스 소개팅 예문 if 문 손코딩 인증샷 또는 실행 화면 캡쳐하기 | Texture 입히기 |
4주차 | Chapter 07 | 함수의 유형을 정리하여 공유하기 |
p.198 7-5 직접 해보는 손코딩 예제 테스트 후 apple 출력하고 종료한 화면 캡쳐하기. 왜 무한대로 출력되지 않는지 이유에 대해 생각하고 정리해보기 |
Transformation 적용 |
5주차 | Chapter 08 | 직접 정리한 키워드 공유하기 |
널 문자의 정의, 용도와 표기법 공유하기 |
Coordinate System 적용 |
6주차 | Chapter 09 | 포인터의 핵심 내용을 정리하고 공유하기 |
나만의 언어로 포인터 정리하기 | Camera 적용 |
선택 미션은 꾸준히 진행하고 있지만 블로그에 올리지 않아서 인증하기가 힘들다...
빨리 올리도록 노력해야겠다
'서평 > IT-강의' 카테고리의 다른 글
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 6주차 (0) | 2022.02.27 |
---|---|
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 5주차 (0) | 2022.02.20 |
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 3주차 (0) | 2022.01.29 |
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 2주차 (0) | 2022.01.23 |
[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 1주차 (0) | 2022.01.16 |