C++

    [C++] 1.1.9 함수

    안녕하세요? 수구리에요. 이번 포스팅에서는 프로그래밍! 하면 빼놓을 수 없는 함수에 대하여 알아보도록 하겠습니다. 내용이 많지는 않으니 지적은 환영입니다! 프로그래밍을 하다가 규모가 큰 프로그램이면 가독성을 높이기 위해 함수 단위로 간결하게 나눠서 작성해야 한다. 그리고 하나의 함수는 하나의 동작을 기본으로 작성하는 것이 좋다. 함수를 선언하는 문장을 함수 프로토타입(function prototype) 또는 함수 헤더(function header)라고 한다. 구체적인 내용은 보지 않고 함수에 어떻게 접근하는지에 대한 형식만 방식만 표현한다는 의미이다. 또한 함수의 리턴 타입을 제외한 함수 이름과 매개변수 목록을 함수의 시그니쳐(function signature)라고 한다. // 함수 선언 방법 void ..

    [C++] 1.1.8 논리 연산자

    안녕하세요? 수구리입니다. 지난 시간에는 조건문에 대하여 살펴보았는데요 오늘은 논리 연산자에 대하여 알아보도록 하겠습니다! 간단하니까 가볍게 읽어보세요! C++에서는 단락 논리 (short-circuit logic) (축약 논리) 방식으로 평가한다. 즉, 식을 평가하는 도중에 결과가 확정되면 나머지 부분은 평가를 하지 않는다. // bool1이 true라면 전체가 true이므로 나머지 연산은 평가하지 않는다. bool result = bool1 || bool2 || (i > 7) || (27 / 13 % i + 1) 7) && !don..

    [C++] 1.1.7 조건문

    안녕하세요? 수구리입니다. 지난 포스팅에서는 C++의 타입에 대해서 알아보았는데요~ 이번 시간에는 흔하디 흔하지만 알고 넘어가야 하는 조건문이에요! 오타나 지적은 환영입니다~ 바로 시작하겠습니다! 대표적인 조건문 if/else 문 switch 문 조건 연산자 if/else 문 // 연속 if 문 if (i > 4) { // do something } else if { // do something } else { // do something } 소괄호안에는 무조건 bool type의 value이어야 한다. C++17에서 if 문의 이니셜라이저 if문 안에 이니셜라이저를 넣는 기능이 추가됨. // 이니셜라이저에 정의한 변수는 에서만 사용 if ( ; ) { } switch 문 다양한 경우를 표현하는 상숫값들..

    [C++] 1.1.6 타입

    안녕하세요? 수구리입니다! 지난 포스팅에서는 연산자들에 대하여 알아보았는데요~ 이번 시간에는 타입에 관련된 내용들입니다! 바로 시작하겠습니다. 오타 또는 잘못된 내용이 있다면 알려주시면 감사하겠습니다. ( _ _ ) 꾸벅 C++ 에서는 기본 타입을 조합해서 더 복잡한 타입을 정의할 수 있다. C언어에서도 사용하던 것으로 소개. 다른 사람이 작성한 코드를 이해하기 위해서 알아두자 ! 1. 열거 타입 (enum) 숫자를 나열하는 방식과 범위를 마음대로 정의해서 변수를 선언하는데 활용 // const로 값이 변하지 않도록 정의 const int PieceTypeKing = 0 const int PieceTypeQueen = 1; const int PieceTypeRook = 2; const int PieceT..

    [C++] 1.1.3 ~ 1.1.4 리터럴과 변수

    안녕하세요? 수구리입니다. 지난 시간에는 namespace에 대하여 알아보았는데요 ~ 오늘은 리터럴과 변수에 대한 내용을 정리해보려고 합니다!! 1.1.3 리터럴(literal) 리터럴은 의역하자면 " 말 그대로 " 라는 뜻이에요. 즉, 값 자체가 이름이라는 뜻이죠. C++에서는 다양한 리터럴들을 제공해준다고 합니다. - 십진수 리터럴, 123 - 8진수 리터럴, 0173 - 16진수 리터럴, 0x7B - 이진수 리터럴, 0b111011 위의 예시에서는 모두 같은 숫자 123을 뜻한다고 합니다. 그리고 또 리터럴 타입을 직접 정의할 수도 있다고 합니다! 이 내용은 한참 뒤에 다시.. (참고) C++부터는 16진수 부동소수점 리터럴도 지원한다. ex) 0x3, ABCp-10, 0XB.cp121, etc....

    [C++] 1.1.2 namespace

    안녕하세요? 수구리입니다! 오늘은 namespace에 대하여 알아보도록 하겠습니다. namespace 란? 책에서는 이렇게 정의하고 있습니다. 네임스페이스는 코드에서 이름이 서로 충돌하는 문제를 해결하기 위해 나온 개념이다. 만약 A라는 함수를 작성하였는데 어떤 라이브러리에서의 함수 이름이 A 함수로 같은 이름이라면.. 컴파일러가 어떤 함수인지 구별을 못하니까 문제가 발생하게 되는 것입니다! 따라서 namespace를 통해서 어떤 이름이 어디에 속해 있는지에 대한 문맥을 정의하여 문제를 해결할 수 있습니다. 바로 이렇게 말이죠 // namespace.h namespace mycode { void A(); } 이렇듯 namespace는 함수 뿐만 아니라 구현 부분도 묶을 수 있습니다. #include #i..

    [C++] 1.1.1 Hello World..!

    안녕하세요? 수구리입니다. (어색;) 오늘부터 본격적으로 책을 펼치게 되었습니다. 우선 어떤 언어를 처음 접하던지 가장 먼저 하는것은 아니, 해야하는 것은바로 Hello World 프로그램을 작성하는 것 같습니다. 그렇다면 이 간단한 프로그램안에는 어떤 것들이 숨어있는지 알아보도록 하겠습니다. 우선 프로그램을 먼저 살펴보도록 하겠습니다! // helloworld.cpp #include int main() { std::cout if not defined] 주로 include 문장이 중복되어서 추가되는 것을 막기 위해서 사용한다. #pragma [xyz] xyz에 대한 구체적인 동작은 컴파일러마다 다르다. 주로 전처리 과정에서 이 지시자에 도달할 떄 경고 또는 에러 메시지를 화면에 표시하는 용도로 사용한다...

    [C++] 전문가를 위한 C++ 책을 펼치며..

    여태 대학 생활을 하면서 내 자신에게 어떤 프로그래밍 언어를 할 줄 아냐고 물어본다고 한다면 솔직하고 자신있게 어떤 언어를 내세우기 부끄럽다고 생각한다.. 그만큼 내가 관심있는 부분에 대해서 깊이 파고들려고 하지 않았던 것 같아서 굉장히 낯뜨겁다. 하지만 입사를 하고 난 뒤, 지금이라도 정신을 차리고 내가 어떤 부분을 깊이 파야할지 진지하게 생각해 보았고 그 결과 퍼포먼스가 좋기로 소문난 C++을 마스터 해보려고 한다. 전공 서적중에 C++ 책이 있지만 나는 그책을 다시는 보지 않으려고 한다. 그냥 간단간단하게 진짜 정말 대학생을 즉, 학생을 위한 책이어서 설명도 가볍게 넘어가고 예제도 별볼것 없다고 생각한 나머지 책을 찾아보게 되었고 마침 제대로 공부를 해보려면 " 전문가를 위한 C++ " 책을 추천한..