Обзор различий между C, C++ и C#

Обзор различий между C, C++ и C#

https://link.zhihu.com/?target=https%3A//csharp-station.com/understanding-the-differences-between-cc-and-c/Перевод статьи взят по этой ссылке

изображение

01. Язык Си

Деннис Ритчи создал язык C в 1972 году и опубликовал его в 1978 году. Ритчи разработал C с первоначальным намерением разрабатывать новые версии Unix . До этого в Unix использовался язык ассемблера , который представляет собой самый низкий . Рождение языка C произвело революцию в программировании и операционных системах . Остальное, как говорится, уже история.

  • C также является языком программирования низкого уровня, и его эффективность близка к эффективности ассемблера .
  • Он обеспечивает базовый способ доступа к памяти и требует очень незначительной поддержки во время выполнения.
  • Из-за возраста C использование C может привести к некоторым улучшениям безопасности (меньше пользователей, меньше вероятность хакерских атак).

Разработчики до сих пор используют его для операционных систем, разработки программного обеспечения на уровне ядра, драйверов оборудования и приложений, которым необходимо работать со старым кодом. (Достаточно взглянуть на TIOBE, который в декабре 2019 года занял второе место, уступая только Java)

02、С++

C ++ можно назвать расширенной версией C. Он был разработан Бьярном Страуструпом, датским доктором философии (Ph.D.). Его целью было усовершенствовать язык C и добавить к нему объектно-ориентированные возможности, не жертвуя при этом скоростью и эффективностью .

  • C++ считается языком среднего уровня , поскольку он основан на языке C низкого уровня и обладает некоторыми расширенными возможностями.
  • В то же время C++ стал еще одним высокопроизводительным языком программирования. Он будет работать с C при разработке операционных систем , а также используется в некоторых высокопроизводительных серверах и программном обеспечении для ПК.
  • C++ позволяет писать кроссплатформенные программы и широко используется во многих областях, таких как разработка игр, системное программирование и т. д. (Например, известный King of Glory использует C++).

03、С#

C# — объектно -ориентированный язык программирования высокого уровня , также созданный как расширение C. Он был разработан в 2002 году Андерсом Хейлсбергом, руководителем команды Microsoft. Он основан на **.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