전체 글 썸네일형 리스트형 [0] C++을 시작하며... 집에 있는 C++책이 "그림으로 배우는 C++ Programming Basic"이 있어서 이걸로 공부를 하도록 하겠습니다. 일단은 효율성을 위해서 처음부터 4강 "식과 연산자" 까지는 빠르게 보도록 하고 if문부터 반복문까지는 사실 모든 언어가 비슷하기 때문에 넘어가고 7강 "함수"부터 다시 보도록 하겠습니다. 그리고, 이후 15강 클래스 심화까지 한 후 16강 파일 입출력은 당장 중요하지 않기 때문에 넘어가면서 C++을 마치도록 하겠습니다. 공부할 목차를 정리하면 다음과 같습니다. 1. 시작하기 2. C++의 기본 3. 변수 4. 식과 연산자 5. 경우에 따른 처리 6. 여러 번 반복하기 7. 함수 8. 포인터 9. 배열 10. 대규모 프로그램의 작성 11. 다양한 형 12. 클래스의 기본 13. 클래.. 더보기 [13] 마치며... 이것으로 C를 마무리 했습니다. C 를 하게 된 이유 유니티와 C#을 공부하다가 Vector, Transform 같은 타입을 쓸 수 있고, 자연스럽게 사용하면서 설명을 하는데 int형 같은 기본 타입이 아닌 타입을 쓰는데다가 스크립트까지 타입으로 만들어서 쓰는 것이 엄청난 혼란을 주었습니다. 그러다가 이것들이 클래스 개념으로 쓰인다는 것을 알았고, 클래스 외에도 this, 인터페이스, 대리자, 프로퍼티 등등 새로운 개념들이 나왔고, 관련 영상을 보고, 어떻게 쓰는지도 봤는데 원리가 이해되지 않으니 따라서 하는게 한계였습니다. 제가 마음대로 응용할 수는 없었습니다. 이렇듯 공부를 하면서도 왜 이렇게 되는지를 모르니 외울 수 밖에 없게 되고, 양이 많다보니 이해도 못하고 비효율적으로 앞에 앉아서 끙끙대는 제.. 더보기 [12] 열거형(enum) 열거형 enum은 식별자로 값을 저장할 수 있는 형입니다. enum 이름 지정 typedef를 통해 enum이 사용될 이름을 따로 정해줄 수 있습니다. enum 내부구조 enum의 내부는 식별자 값마다 정수가 배정되어 있습니다. 앞에서부터 차례대로 0부터 배정됩니다. 위와 같이 식별자들은 정수가 차례대로 배정되어 있으며, 또한 정수로도 취급될 수 있습니다. 값을 지정하기 식별자 값을 초기화할 때 대입연산자를 통해서 정수를 지정해 줄 수 있습니다. 지정한 숫자부터 다시 1씩 추가되며 배정됩니다. 3으로 배정된 식별자 뒤에는 4가 된 것을 볼 수 있습니다. enum의 장점 enum을 사용하면 식별자를 통해 코드를 좀 더 이해하기 쉽게 짤 수 있습니다. 매크로와 비교 매크로와 열거형은 식별자를 사용해 정수를 .. 더보기 [11] 공용체 공용체 형(union) 구조체 형 선언과 같지만 struct대신에 union을 사용합니다. 공용체 멤버의 주소 struct의 멤버가 각각 메모리를 차지하는 것과 다르게 공용체는 모든 멤버가 합쳐져 하나의 메모릴 주소를 공유합니다. 멤버에 각각 대입하려고 하면 "값이 너무 많다"는 오류가 발생합니다. 코드를 보면 알 수 있듯이 struct의 멤버들은 모두 다른 주소를 가지고 있는 반면, union은 다른 멤버지만 같은 주소값을 가진다는 것을 알 수 있습니다. 공용체는 어디에 쓰일까요? kldp.org/node/105301 [해결] union을 왜 쓰나요? | KLDP 조금 어이없는 질문 같긴 합니다만.. 커널소스를 요새 보고 있는데 생각보다 많은 union이 사용되고 있더군요. 교과서적으로 배우는 unio.. 더보기 [10] 구조체 응용 함수의 인수로 구조체를 사용할 수 있습니다. 함수에 구조체 형이 인수로 들어가므로 오류가 나지 않도록 구조체를 먼저 정의해줍니다. 구조체 변수를 인수로 넘기는데 이때, 값이 복사되어 함수로 넘어갑니다. 하지만, 구조체의 크기가 커지면 커질수록, 복사해야 하는 값이 많아지기 때문에 인수를 전달할 때의 속도는 느려질 수 있습니다. 따라서 복사하지 않고, 포인터로 주소 값만 지정해준 뒤 직접 값에 접근하는 방식으로 값을 다루면 속도가 향상될 수 있습니다. 왜 입력을 받을 때는 멤버 앞에 &를 사용하는데 출력을 할 때는 멤버 이름만 적을까? 포인터를 사용해 인수를 전달하기에 앞서 인수를 포인터로 전달하면 기존의 멤버 접근 방식과 다른 표현을 써야합니다. 포인터로 전달했을 때 멤버에 접근하는 법을 알아야 알아보겠.. 더보기 [9] 구조체 표기방법과 크기 앞서 봤던 구조체 변수를 선언할 때 항상 struct를 붙였어야 했는데, 매번 쓰기도 번거롭고 보기도 별로 좋지가 않습니다. 그래서 이를 줄이고 깔끔하게 쓸 수 있는 방법을 알아보겠습니다. typedef typedef 키워드는 구조체 변수 선언을 단축할 수 있는 방법입니다. 구조체 형을 선언할 때 struct앞에 typedef를 쓰고 구조체 블록이 끝날 때 struct Animal을 뭐라고 줄일지 결정합니다. 이때 결정하는 이름은 구조체 형의 이름(여기서는 Animal)과 같을 필요는 없습니다. 이렇게 하면, 기존에 struct를 쓰던 방법에서 멤버 값 초기화 구조체에서는 구조체 변수를 선언하면서 초기화를 할 수 있습니다. 콤마 순서대로 멤버에 값이 대입됩니다. 만들면서 미리 값을 정해야 할 때 유용합니.. 더보기 [8] 구조체 구조체 서로 다른 타입들을 모아서 새로운 타입(형)을 만드는 것입니다. 구조체 형 선언 구조체 형 선언으로 구조체가 어떤 형인지 결정합니다. 선언을 하기 위해 struct라는 예약어를 사용합니다. 구조체 변수 선언 구조체가 어떤 형인지 결정했으면, 해당 구조체 타입의 변수를 선언합니다. 멤버 구조체의 변수를 말합니다. 여기서는 age, size가 멤버입니다. 멤버 접근 구조체의 멤버(변수)에 접근하기 위해서는 도트 연산자(.)를 사용합니다. 멤버에 접근하면 값을 대입하거나 멤버에 담긴 값을 이용할 수 있습니다. 멤버 입력받기 멤버를 키보드로 입력받을 때는 일반 변수처럼 멤버에 접근해서 앞에 &를 붙여주면 됩니다. 이것으로 1칠판을 마치겠습니다. 더보기 [7] 함수 포인터 함수의 코드를 컴파일하면 기계어 코드가 메모리에 저장되는데 이에 따라 주소값이 생깁니다. 배열처럼 이때의 주소값은 함수의 첫 부분의 메모리 위치를 나타냅니다. 이 주소값을 저장해서 포인터로 이용할 수 있는데, 이 포인터를 "함수 포인터"라고 합니다. 함수 포인터 함수의 주소값을 저장할 수 있는 포인터로 일반 배열과는 조금 다르게 선언을 해야 합니다. 함수 포인터는 3가지 과정을 거쳐 사용할 수 있게 됩니다. 1) 함수 선언 및 정의 2) 함수 포인터 선언 및 주소값 대입 3) 함수 포인터로 함수 호출 함수 선언 및 정의는 할 줄 안다는 가정으로 포인터 선언부터 설명하겠습니다. 함수 포인터 선언 함수 포인터 선언 방법은 아래와 같습니다. 주의 : 선언할 때 함수이름과 *를 함께 묶어주지 않으면 ( )가 *.. 더보기 이전 1 ··· 4 5 6 7 8 9 다음