C, C++ 및 C#의 차이점 개요

C, C++ 및 C#의 차이점 개요

https://link.zhihu.com/?target=https%3A//csharp-station.com/understanding-the-differences-between-cc-and-c/기사 번역은 이 링크에서 따왔습니다.

img

01. C언어

데니스 리치(Dennis Ritchie)는 1972년에 C 언어를 만들어 1978년에 출판했습니다. Ritchie는 Unix 의 새 버전을 개발하려는 원래 의도로 C를 설계했습니다 . 그때까지 유닉스는 컴퓨터가 읽을 수 있는 가장 낮은 어셈블리 언어를 사용했습니다 . C 언어의 탄생은 프로그래밍과 운영 체제에 혁명을 일으켰습니다 . 그들이 말했듯이 나머지는 역사입니다.

  • C는 또한 저수준 프로그래밍 언어이며 효율성은 어셈블리 언어에 가깝습니다 .
  • 메모리에 액세스하는 기본 수준의 방법을 제공하며 런타임 지원이 거의 필요하지 않습니다.
  • C의 시대로 인해 C를 사용하면 보안이 향상 될 수 있습니다 (사용자 수가 적고 해커 공격 가능성이 적음).

개발자는 여전히 운영 체제, 커널 수준 소프트웨어 개발, 하드웨어 드라이버 및 이전 코드로 작업해야 하는 애플리케이션에 이를 사용합니다. (2019년 12월 Java에 이어 2위를 차지한 TIOBE를 보세요)

02、C++

C ++는 C의 확장 버전이라고 할 수 있습니다. 덴마크 철학박사(Ph.D.)인 Bjarne Stroustrup이 개발했습니다. 그의 목표는 C 언어를 향상시키고 속도 나 효율성을 희생 하지 않고 C 언어 에 객체 지향 기능을 추가하는 것이었습니다.

  • C++는 저급 C 언어를 기반으로 하고 일부 고급 기능을 갖추고 있기 때문에 중급 언어로 간주됩니다.
  • 동시에 C++는 또 다른 매우 생산적인 프로그래밍 언어가 되었습니다. 운영 체제를 개발할 때 C와 함께 작동하며 일부 고급 서버 및 PC 소프트웨어에서도 사용됩니다.
  • C++는 크로스 플랫폼 프로그램을 작성할 수 있으며 게임 개발, 시스템 프로그래밍 등 다양한 분야에서 널리 사용됩니다. (예를 들어, 잘 알려진 King of Glory는 C++를 사용합니다.)

03、C#

C#은 C의 확장으로 만들어진 고급 개체 지향 프로그래밍 언어입니다. 2002년 Microsoft 팀의 리더인 Anders Hejlsberg가 개발했습니다. **.NET Framework**를 기반으로 하지만 핵심은 여전히 ​​C 언어입니다.

  • C#은 기계어 코드 (0101 바이너리) 대신 코드를 바이트 코드로 컴파일합니다 .
  • 이는 바이트코드를 즉시 기계어 코드로 변환하는 가상 머신 에서 실행됩니다 .
  • C언어를 기반으로 가비지 컬렉션 , 초기화되지 않은 변수 검사 , 바운드 검사 , 타입 검사 등 의 기능이 추가되었습니다.

말하자면, C#에는 Java와 유사한 기능과 JVM 원칙 등이 있습니다.

C#은 상용 소프트웨어보다는 내부 또는 기업용 애플리케이션에 더 일반적으로 사용됩니다. .NET Framework의 클라이언트 측 및 서버 측 개발에서 찾을 수 있습니다.

차이점 요약

C, C++ 및 C#은 서로 다른 세 가지 프로그래밍 언어이며 디자인 목표 , 기능응용 분야가 매우 다릅니다 . 비교 방법은 다음과 같습니다.

  1. 프로그래밍 패러다임:
    • C: C는 절차와 기능 작성 에 중점을 둔 절차적 프로그래밍 언어입니다.
    • C++: C++는 절차적 프로그래밍 객체 지향 프로그래밍을 모두 지원하는 다중 패러다임 프로그래밍 언어입니다 . 클래스와 객체의 개념을 소개하여 캡슐화, 상속, 다형성과 같은 객체 지향 기능을 사용할 수 있습니다.
    • C#: C#은 주로 개체 지향적이고 절차적 프로그래밍과 일반 프로그래밍도 지원하는 다중 패러다임 프로그래밍 언어입니다 . .NET 프레임워크와 상호 작용하도록 설계되었으며 구성 요소 지향 프로그래밍을 지원합니다 .
  2. 메모리 관리:
    • C: C에서는 개발자가 메모리 할당 및 해제를 포함하여 메모리를 수동으로 관리 해야 합니다 .
    • C++: C++는 자동 메모리 관리를 제공 하지만 수동 메모리 관리도 허용합니다. 객체의 수명주기를 관리하기 위해 생성자와 소멸자를 소개합니다.
    • C#: C#은 .NET 프레임워크에서 실행되고 가비지 수집 메커니즘이 있으며 자동으로 메모리를 관리합니다 . 개발자는 수동으로 메모리를 할당하거나 해제할 필요가 없습니다.
  3. 플랫폼 호환성:
    • C: C 코드는 일반적으로 플랫폼 호환성이 좋으며 여러 운영 체제에서 컴파일하고 실행할 수 있습니다 .
    • C++: C++의 코드에도 특정 플랫폼 호환성이 있지만 GUI(그래픽 사용자 인터페이스)와 같은 측면에서는 특정 조정이 필요할 수 있습니다.
    • C#: C#은 주로 .NET 프레임워크와 밀접하게 관련되어 있으므로 Windows 환경에서 더 일반적입니다. Mono 및 .NET Core를 통해 다른 플랫폼에서도 실행될 수 있지만 주로 Windows .
  4. 컴파일 및 실행 방법:
    • C: C 코드는 일반적으로 기계어 코드 로 컴파일되어 하드웨어 에서 직접 실행됩니다 .
    • C++: C++ 코드도 기계어 코드 로 컴파일되지만 객체 지향 개념이 도입되어 클래스 및 객체 관련 구조의 생성이 가능합니다.
    • C#: C# 코드는 IL(중간 언어)로 컴파일된 다음 .NET 런타임 환경에서 실행됩니다. 이 접근 방식을 사용하면 크로스 플랫폼 작업과 런타임 시 일부 최적화가 가능합니다.
  5. 적용 분야:
    • C: C는 일반적으로 시스템 수준 프로그래밍, 임베디드 시스템 및 성능이 중요한 애플리케이션에 사용됩니다.
    • C++: C++는 게임 개발, 그래픽 인터페이스 애플리케이션, 시스템 개발 및 고성능이 필요한 애플리케이션에 널리 사용됩니다.
    • C#: C#은 Windows 데스크톱 애플리케이션, 웹 애플리케이션, 모바일 애플리케이션 및 .NET 플랫폼과 통합된 엔터프라이즈 수준 애플리케이션에서 일반적으로 사용됩니다.

전반적으로 어떤 언어를 사용할지는 프로젝트의 요구사항, 개발자의 경험, 애플리케이션의 특성에 따라 선택됩니다. C는 하위 수준 개발에 적합하고, C++는 보다 추상적이고 객체 지향적인 기능을 제공하며, C#은 .NET 플랫폼에서의 고급 애플리케이션 개발에 적합합니다.

추천

출처blog.csdn.net/H931053/article/details/134852180