* 블로그에 작성된 따라배우는 C++ 관련 모든 코드와 사진들의 저작권은 강의의 저자이신 홍정모 교수님께 있습니다.
인프런 사이트(www.inflearn.com)의 '홍정모의 따라하며 배우는 C++' 유료강좌를 실제로 구매하였고
강의를 수강하며 제 스스로 복습 및 내용 정리를 위해
강의에 나오는 코드들을 따라친 코드와 교수님의 말씀, 그리고 강의에 나오는 사진들을
활용하였음을 미리 알립니다.
마지막으로, 좋은 강의를 제작해주신 홍정모 교수님께 감사드립니다.
______________________________________________________________________________________________
assert , 단언하기 기능을 배웠다.
이 기능은 배포(release) 모드가 아닌 debug(디버깅모드에서만 활용이 가능하다.
말 그대로 디버깅할 때 오류를 잡기 위해 사용한다.
예를 들어 int number = 10; 으로 선언했는데
number는 무조건 5여야한다면, assert(number == 5)를 함으로써 오류가 발생하고, 아 오류가 있구나를 확인하게 되지.
assert를 함으로써 어디 부분이 오류가 있는지 파악이 가능하다.
static_assert의 경우 컴파일 이전에 파악이 가능하고, 오류 부분에 문자열을 출력함으로써 좀 더 명시해줄 수 있다.
C와 C++을 공부하면서, 어떻게 보면 궁금한 점은 다른 함수들은 인자를 가질 수 있는데
과연 main함수는 void말고 인자를 더 가질 수 있을까? 였다.
답은, 가능하다.
프로젝트의 속성에 들어가 명령 인수를 넣음으로써 인자를 직접 넣어줄 수 있다.
main안의 인자는 int argc, char* argv[] 즉
인자의 갯수, 문자열 배열의 포인터가 들어간다.
인자의 갯수는 저절로 넣어준다.
지금 보면 가장 첫번째의 문자열이 프로그램의 위치 이름을 알려준다.
이를 통해,
main함수의 인자 문자 배열의 첫번째 원소는 "해당 파일의 이름"이다
한번 1024라는 값만 넣어줘봤다.
그럼 당연히 첫번째 원소는 프로그램 이름이니까
argv[1]이겠지?
각 문자열들을 string으로 받고
인덱스가 1일 경우 문자열을 정수로 바꿔서(stoi string to integer)
출력하고있다.
ellipsis, 즉 생략기호는
내가 인자를 몇 개 받을 지 모를 때 저렇게 사용한다.
우선 <cstdarg>라는 (c standard argument) 헤더파일을 인클루드해주고
인자들을 넣을 때 제일 첫번째 인자에는 인자가 몇 개인지 적어줘야한다.
va_list 는 char* 이라는 문자열이다.
va_start라는 함수, va_end라는 함수를 처음과 끝에 해줘야하고
이런게 있구나 정도면 된다.
나중에 다시 구글링할테니..
이 함수의 핵심은 결국엔 첫번째 인자에 해당 인자의 갯수들을 적어줘야한다는 것.
인자의 갯수가 정확하지 않으면 4번째 결과값처럼 오류가 난다.
21.9.7) 이렇게 chapter 7 함수를 끝냈다.
내일은 chapter 8인 객체에 대해서 배울 예정...!
개강을 해서 숙제 많아지기 전에 서둘러 배워보자.
'C++(따라하며 배우는 C++)' 카테고리의 다른 글
Chapter 8-(2). 객체지향의 기초 (0) | 2021.09.14 |
---|---|
Chapter 8-(1). 객체지향의 기초 (0) | 2021.09.13 |
chapter 7-(3). 함수 (0) | 2021.09.06 |
chapter 7-(2) . 함수 (0) | 2021.09.04 |
Chapter 7-(1). 함수 (0) | 2021.09.02 |