Scientia Conditorium

[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 4주차 본문

서평/IT-강의

[혼공단] 혼자 공부하는 C언어/혼공단 7기 - 4주차

크썸 2022. 2. 13. 04:04

[기본 미션] - 함수의 유형을 정리하여 공유하기

반환형 함수명(매개변수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 출력하고 종료한 화면 캡쳐하기.
왜 무한대로 출력되지 않는지 이유에 대해 생각하고 정리해보기

p.198 7-5 예제 실행 시 Exception 에러 발생

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 적용

선택 미션은 꾸준히 진행하고 있지만 블로그에 올리지 않아서 인증하기가 힘들다...

빨리 올리도록 노력해야겠다