C 및 C++ 언어를 배우는 방법: 궁극적인 목록

게시 됨: 2022-03-11

C 프로그래밍 언어는 원래 Dennis Ritchie에 의해 UNIX 운영 체제용으로 개발 및 구현되었습니다. 아주 간단한 C 언어는 특정 하드웨어나 시스템에 얽매이지 않습니다. 이것은 사용자가 거의 모든 기계에서 많은(또는 어떤) 변경 없이 실행되는 프로그램을 작성하는 것을 더 쉽게 만듭니다.

C 언어는 고급 언어의 요소와 어셈블리 언어의 기능주의를 결합하여 종종 중간 수준 컴퓨터 언어라고 불립니다. C 프로그래밍을 사용하면 비트, 바이트 및 주소를 조작할 수 있으므로 프로그래머가 프로그램이 어떻게 동작하는지 정확하게 제어하고 기본 하드웨어의 역학에 더 직접 액세스할 수 있습니다.

C는 일하는 프로그래머에 의해 만들어지고 영향을 받고 현장 테스트를 거쳤습니다. 최종 결과는 C가 프로그래머가 원하는 것을 프로그래머에게 제공한다는 것입니다.

C++는 C 언어의 향상된 버전입니다. C++는 C의 일부인 모든 것을 포함하고 객체 지향 프로그래밍(OOP)에 대한 지원을 추가합니다. 또한 C++에는 객체 지향 프로그래밍과 무관하게 "더 나은 C"가 되도록 하는 많은 개선 사항과 기능이 포함되어 있습니다.

C++ 언어는 표준 언어의 일부인 미리 정의된 유형처럼 작동하는 방식으로 새 유형을 정의할 수 있기 때문에 실제로 확장 가능합니다.

C++를 더 나은 C로 사용하는 경우 모든 기능을 사용하지 못할 것입니다. 다른 품질 도구와 마찬가지로 C++도 그 풍부함을 활용하기 위해 설계된 방식으로 사용해야 합니다. 새로운 기능에는 캡슐화, 인라인 함수 호출, 연산자 오버로딩, 상속 및 다형성이 포함됩니다.

C 또는 C++를 배우고 싶은 이유는 무엇입니까?

C와 C++는 여전히 가장 인기 있는 두 가지 프로그래밍 언어입니다. 특히 C의 구문과 개념은 시간의 테스트를 거쳤으며 다른 인기 있는 프로그래밍 언어, 심지어 Go와 같은 최신 프로그래밍 언어에도 적용되는 것을 볼 수 있습니다.

평생 동안 웹 응용 프로그램이나 멋진 웹 프런트 엔드 구성 요소를 빌드할 예정이더라도 C를 배우면 소프트웨어와 하드웨어가 실제로 상호 작용하는 방식을 이해하는 데 도움이 됩니다.

게다가 C와 C++는 어디에나 있습니다.

특히 C는 우리가 인정하는 것보다 훨씬 더 많은 기술에 힘을 실어줍니다.

반면에 좋아하는 소프트웨어 중 일부(이 기사를 읽고 있는 웹 브라우저도 가능)는 C++를 기반으로 합니다. C를 아는 것은 좋은 기초이지만 많은 경우 소프트웨어 개발을 위해서는 C++와 그 패러다임을 배워야 합니다.

컴퓨터의 성능과 기능을 최대한 활용해야 하는 소프트웨어를 개발하려는 경우(예: 고급 데스크톱 게임, 정교한 생산성 도구 또는 복잡한 계산 집약적 프로그램) 또는 컴퓨터의 하드웨어와 직접 상호 작용할 수 있는 C와 C++는 당신을 위한 언어입니다.

그렇다면 왜 C++이나 C를 배우고 싶지 않습니까 ? 시작하기 위해 독점 컴파일러에 투자해야 했던 25년 전과는 다릅니다. 오늘날에는 확실히 C++를 무료로 배울 수 있습니다.

C 및 C++를 시작하려면 어떻게 해야 합니까?

C 또는 C++를 시작하려면 대부분의 경우 최소한 컴파일러가 필요합니다. 하지만 요즘에는 브라우저 내에서 "hello world" C 프로젝트를 약간 실험하여 온라인으로 C를 배울 수도 있습니다.

컴파일러는 명령줄 인터페이스(CLI)를 통해 실행할 수 있는 프로그램입니다. 그들은 전체 프로그램을 읽고 그것을 컴퓨터가 직접 실행할 수 있는 형태로 프로그램 소스 코드를 번역하는 목적 코드로 변환합니다.

삶을 더 쉽게 만들기 위해 C 또는 C++ 경험을 훨씬 더 즐겁게 만들어 줄 수 있는 본격적인 IDE를 사용할 수 있습니다.

Windows에서 사용할 수 있는 좋은 컴파일러가 많이 있습니다.

Windows에서 Visual Studio는 C++ 컴파일러를 제공합니다.

컴파일러는 C 프로그램을 빌드할 수도 있습니다.

Visual Studio는 강력하고 기능이 풍부한 자체 IDE와 함께 제공되므로 C 또는 C++를 시작하는 사람이나 주로 Windows 플랫폼을 대상으로 하는 사람에게 적합한 선택입니다.

보다 표준을 준수하는 것을 찾고 있다면 GCC(MinGW)가 필요할 수 있습니다. Codeblocks IDE는 이 설정에서 매우 잘 작동합니다.

Clang도 이제 Windows에서 강력한 선택이 되었으며 오늘날에는 Google Chrome을 구축하는 데에도 사용됩니다.

Eclipse CDT, Jetbrains CLion 및 Netbeans와 같이 완전한 기능의 C 및 C++ 개발 환경을 제공하는 다른 교차 플랫폼 IDE가 있습니다. 그러나 최근에는 Linux 및 Mac 환경에서도 사용할 수 있는 Visual Studio Code에 의해 이러한 기능이 사라지고 있습니다(아이러니를 용서해 주십시오).

리눅스

Linux를 사용하는 경우 이미 배포판의 일부로 GCC가 설치되어 있을 것입니다. 그렇지 않은 경우 단일 명령으로 설치해야 합니다.

 # Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel

Codeblocks IDE와 Eclipse CDT는 Windows에서와 마찬가지로 Linux에서도 똑같이 잘 작동합니다.

맥 / 맥 OS X / OS X / 맥OS

Mac에서는 Clang 또는 GCC를 사용할 수 있습니다. 둘 다 무료로 사용할 수 있습니다. GCC는 더 넓은 범위의 C 및 C++ 표준을 지원하지만 Clang은 대부분의 경우 잘 작동합니다.

Clang이 이미 설치되어 있어야 합니다.

Homebrew를 사용하여 GCC를 설치할 수 있습니다.

 brew install gcc

Mac OS 개발자 도구의 일부인 훌륭한 IDE인 XCode를 사용할 수 있습니다.

C 및 C++ 학습을 위한 좋은 자습서는 무엇입니까?

자습서는 새로운 프로그래밍 언어를 시작하는 좋은 방법입니다. 프로그래밍 자체에 익숙하지 않더라도. 다음 자습서에서는 가장 중요한 개념을 알려줍니다.

LearnVern에서의 C 프로그래밍

이 포괄적인 C 프로그래밍 온라인 과정은 프로그래밍 경험이 없어도 되는 초보자에게 적합합니다. C와 일반적인 프로그래밍의 기초부터 시작하여 동적 메모리 할당, 파일 관리 등과 같은 고급 주제를 다룹니다.

Coursera의 C 프로그래머를 위한 C++

이미 C에 익숙하고 C++에 발을 담그고 싶다면 이 두 부분으로 구성된 과정이 적합합니다. 이 과정은 이 두 언어의 차이점을 진정으로 강조하고 C++를 최대한 활용하는 방법을 보여줍니다.

Pluralsight의 C++ 기초

반면에 C++의 기초부터 시작하여 처음부터 배우고 싶다면 PluralSight에 튜토리얼이 있습니다. C++를 보다 효율적으로 사용하려는 사람들을 대상으로 합니다.

Udemy의 초심자를 위한 C 프로그래밍

이 C 프로그래밍 온라인 과정은 초심자 친화적이며 세 가지 인기 있는 플랫폼(Windows, Linux 및 Mac OS X)에서 C를 시작하려는 모든 사람에게 적합합니다.

Udemy의 완전한 초보자를 위한 C++ 튜토리얼

이 과정은 기본적인 컴퓨터 지식이 있지만 이제 프로그래밍 영역에 들어가고자 하는 모든 사람을 대상으로 합니다. 틀림없이 C++를 모국어로 배우는 가장 좋은 방법입니다. 또한 게임 개발이 흥미롭다면 시작하고 싶은 과정입니다.

Udemy의 고급 C++ 프로그래밍 교육 과정

기본 C++ 프로그래밍 기술에 만족하고 실제 거래로 이동할 준비가 되면 이와 같은 고급 자습서가 필요합니다. 이 튜토리얼은 다형성, 템플릿, 예외 처리, 스트림, 컨테이너, 알고리즘, 스택 등을 다룹니다.

comp.lang.c 자주 묻는 질문

때때로 필요한 것은 문제를 해결하기 위해 빠르게 찾을 수 있는 풍부한 질문과 답변 목록입니다. 이것은 튜토리얼 자체가 아니라 구조화된 자주 묻는 질문 모음입니다.

Frank Brokken의 C++ 주석(버전 10.9.2)

이 웹 기반 자습서는 C++로 전환하려는 고급 C 프로그래머(또는 Perl 또는 Java 프로그래머 - "C와 유사한 문법"이 있는 것으로 간주되는 모든 것)를 대상으로 합니다. 포인터, 메모리 할당 및 복합 유형과 같이 C 프로그래밍 언어가 끝나는 곳에서 계속되므로 매우 좋은 C++ 프로그래밍 가이드가 됩니다.

Google C++ 스타일 가이드

C++ 프로그래밍을 배우는 동안 더 정교한 프로그램을 작성할 때 유지 관리 문제에 빠르게 직면할 수 있습니다. 여기에서 베테랑 C++ 프로그래머의 스타일 가이드가 유용합니다. 이 스타일 가이드는 Google에서 관리합니다.


위의 C/C++ 자습서로 충분하지 않은 경우 C 학습 및 C++ 학습을 위한 좋은 커뮤니티 중재 자습서 목록이 있습니다.

책을 읽으면서 C와 C++을 배울 수 있습니까?

책은 프로그래밍 언어에 대해 깊이 있게 배울 수 있는 좋은 방법입니다. 프로그래밍 언어의 복잡한 기능이 어떻게 작동하는지에 대한 많은 훌륭한 설명과 함께 C 또는 C++에 대한 좋은 책의 지식은 프로젝트에 이러한 언어를 사용하는 동안 우위를 점할 수 있습니다.

C in a Nutshell: Peter Prinz와 Tony Crawford의 Definitive Reference (2nd Edition)

이 책에는 C 프로그래밍 언어에 대한 간략한 소개가 포함되어 있지만 C 코딩을 배우고 싶다면 두 번째 책으로 더 적합합니다. 능력.

책은 세 부분으로 나누어져 있다.

첫 번째는 용어의 엄격한 의미에서 C 언어를 설명합니다. 두 번째는 표준 라이브러리를 설명하고 세 번째는 인기 있는 GNU 소프트웨어 컬렉션의 도구를 사용하여 프로그램을 컴파일하고 테스트하는 프로세스를 설명합니다.

C in Nutshell 은 Brian W. Kernighan & Dennis Ritchie(K&R라고도 함)의 C 프로그래밍 언어의 완벽한 동반자이며 책상에서 가장 많이 찾는 참고서가 될 것입니다.

Brian W. Kernighan과 Dennis Ritchie의 C 프로그래밍 언어

이것은 Kernighan & Ritchie 원본의 두 번째 판입니다.

그것은 초판의 성격을 유지하면서 ANSI 표준에 의해 통합된 수정을 포함하기 때문에 일반적으로 신약이라고 합니다.

이 책은 독자가 기본적인 프로그래밍 지식을 가지고 있다고 가정합니다. 따라서 이제 막 프로그래밍을 시작하고 C가 모국어라면 이 책은 당신에게 이상적인 책이 아닐 수도 있습니다. 그러나 이 요약된 메모는 가치가 있을 수 있습니다.

이것은 C 프로그래밍을 소개하는 가장 좋은 방법 중 하나이며, 특히 프로그래밍 책 모음을 시작하는 경우 필수 항목입니다.

Bjarne Stroustrup의 C++ 프로그래밍 언어(4판)

Bjarne Stroustrup은 C++의 디자이너이며 이 주제에 대해 많은 훌륭한 책을 저술했습니다.

이 책은 세 부분으로 나누어져 있다.

첫 번째 부분에서는 C++ 프로그래밍에 대한 자습서 소개를 제공합니다.

두 번째 부분은 C++ 사용과 관련하여 발생하는 디자인 및 소프트웨어 개발 문제에 대한 설명을 제공하고 세 번째 부분은 완전한 참조 매뉴얼입니다.

C++의 인기와 함께 C++의 여러 독립 배포자가 나왔지만 이 책에서는 '순수한 C++'에 대해 설명합니다. 즉, 구현 종속 확장이 사용되지 않습니다.

프로그래밍 언어를 배우는 가장 좋은 방법 중 하나는 공부하는 항목과 관련된 작은 프로그램을 작성하는 것입니다. 각 장의 마지막에는 새로 배운 지식을 적용하기 위한 연습 문제가 있습니다.

효과적인 C++: Scott Meyers의 프로그램 및 디자인을 개선하는 55가지 특정 방법

C++로 대규모 소프트웨어를 구축하려면 설계와 규율이 필요합니다. C++에 대해 진지한 사람이라면 이 책을 반드시 읽어야 합니다.

효과적인 클래스, 함수, 템플릿 및 상속 계층 설계를 위한 전문가용 안내서입니다. 이 책은 또한 C++가 다른 언어와 어떻게 다른지, 그리고 "C++ 방식"으로 작업하는 방법에 대해서도 설명합니다.

Stanley B. Lippman의 C++ 입문서(5판)

C++ 입문서는 훌륭한 책이며 C++ 학습을 재미있게 만들 것입니다. 그것은 실제로 현존하는 최고의 C++ 책 중 하나이지만, 프로그래밍 개념과 C에 대한 숙련도에 대해 많이 알고 있다고 가정합니다.

이 책의 최신판은 새롭고 고급 기능을 최대한 활용하려는 프로그래머에게 적합합니다.

Marshall P. Cline의 C++ FAQ(2nd Edition)

프로그래밍, 디자인, 분석 및 테스트에 관한 약 500개의 질문에 대한 답변을 포함하는 경이로운 책입니다. 초보자를 위한 것이 아니라 언어의 구문을 파악한 프로그래머가 이를 구현하기를 원하는 프로그래머를 위한 것입니다.

"클래스 불변이란 무엇입니까?", "예외를 어떻게 사용해야 하나요?", "소멸자가 실행되면 어떻게 됩니까?"와 같은 질문이 있는 경우 이 책이 바로 당신을 위한 책입니다.

효과적인 최신 C++: Scott Meyers의 C++11 및 C++14 사용을 개선하는 42가지 특정 방법

C++에 이미 경험이 있지만 최신 표준을 테스트하고 싶다면 이 책을 읽으십시오. 이러한 새로운 표준을 통해 C++가 얼마나 발전했는지 놀랄 것입니다. 이 책에서는 C++의 새로운 기능을 가장 효과적으로 사용하는 방법에 대해 설명합니다. (C++ 표준은 이제 C++17까지이지만, C++14는 여전히 많은 프로젝트 컨텍스트에서 최첨단입니다.)

효과적인 STL: Scott Meyers의 표준 템플릿 라이브러리 사용을 개선하는 50가지 구체적인 방법

C++의 가장 놀라운 측면 중 하나는 표준 템플릿 라이브러리(STL)입니다. 가장 강력한 기능 중 하나이지만 상당히 복잡할 수 있습니다. 이 책은 STL의 다양한 영역을 탐색하는 50개의 멋진 팁과 100개 이상의 STL 알고리즘을 제공하여 C++를 막 시작하는 개발자가 더 쉽게 접근할 수 있도록 합니다.

관련: 개발자가 저지르는 가장 흔한 10가지 C++ 실수