Введение в C

Язык программирования C

Последнее обновление: 03.02.2023

Язык программирования С (си) является одним из самых популярных и распространенных языков. Он представляет компилируемый язык программирования общего назначения со статической типизацией, разработанный в 1969—1973 годах в компании Bell Labs программистом Деннисом Ритчи (Dennis Ritchie).

Язык С нередко называют языком программирования "среднего уровня" или даже "низкого уровня", так как он сочетает элементы языков высокого уровня с функциональностью и производительностью ассемблера и работает близко к аппаратной части компьютера. В итоге мы можем манипулировать данными на низком уровне и при этом использовать высокоуровневые конструкции для управления работы программы.

Первоначально язык С предназначался для написания операционной системы Unix. Впоследствии Си стал одним из популярных языков, а его основной сферой применения стало системное программирование, в частности, создание операционных систем, драйверов, различных утилит, антивирусов и т.д. К слову сказать, Linux большей частью написан на Си. Однако только системным программированием применение данного языка не ограничивается. Данный язык можно использовать в программах любого уровня, где важны скорость работы и производительность. Так, мы можем писать с помощью Си и прикладные приложения, и даже веб-сайты (используя технологию CGI - Common Gateway Interface). Но, конечно, для создания графического интерфейса и веб-приложений, как правило, выбираются более подходящие инструменты и технологии, но тем не менее круг использования Си довольно широк. Это в немалой степени определило популярность языка. Например, в известном рейтинге языков программирования TIOBE язык С долгое время уверенно удерживает второе место.

Несмотря на большие возможности язык Си одновременно довольно прост. Он не содержит много конструкций, библиотек, его легко осваивать и изучать. Поэтому нередко его выбирают в качестве языка для изучения в целом программированию.

Си является компилируемым языком, а это значит, что компилятор транслирует исходный код на Си в исполняемый файл, который содержит набор машинных инструкций. Но разные платформы имеют свои особенности, поэтому скомпилированные программы нельзя просто перенести с одной платформы на другую и там уже запустить. Однако на уровне исходного кода программы на Си обладают переносимостью, а наличие компиляторов, библиотек и инструментов разработки почти под все распространенные платформы позволяет компилировать один и тот же исходный код на Си в приложения под эти платформы.

Развитие Си оказало большое влияние в целом на развитие языков программирования. В частности, его синтаксис стал основой для таких языков как С++, С#, Java, PHP, JavaScript. Особо следует сказать про связь с C++. C++ напрямую произошёл от Си. Но впоследствии их развитие происходило отдельно друг от друга, и даже появилась несовместимость между ними. Стандарт C99 добавил в язык Си ряд конфликтующих с C++ особенностей. В итоге в настоящее время оба языка являются фактически самодостаточными и развиваются независимо.

Основные особенности Си

  • Универсальность - один и тот же код может быть скомпилирован на почти каждой платформе (при наличии для нее компилятора)

  • Высокая скорость выполнения

  • Компактность, небольшой размер выходных скомпилированных файлов

Основные этапы развития

В 1978 году Брайан Керниган и Деннис Ритчи опубликовали первое издание своего знаменитого труда "Язык программирования Си". Долгое время эта книга служила неформальной спецификацией языка Си. Однако быстрое распространение Си привело к необходимости выработки общих стандартов. И в 1983 году организация ANSI (Американский национальный институт стандартов) создала комитет для разработки спецификации Си. А в 1989 году спецификация была утверждена. Эту версию языка принято называть ANSI C или C89. В 1990 году спецификация ANSI C была немного дополнена Международной организацией по стандартизации (ISO). Новый стандарт стал называться ISO/IEC 9899:1990 или сокращенно С90.

В конце 1990-х годов стандарт подвергся пересмотру, что привело к выходу нового стандарта в 1999 году, который принято называть C99 (официальное название ISO 9899:1999). В году 2018 вышел последний на момент написания текущей статьи стандарт C17 (официальное название ISO/IEC 9899:2018). В 2023 планируется выход стандарта C23. Список всех стандартов

  • ANSI C Standard (ANSI C / C89)

  • C90 (ISO/IEC 9899:1990)

  • C99 (ISO/IEC 9899:1999)

  • C11 (ISO/IEC 9899:2011)

  • C17 (ISO/IEC 9899:2018)

  • C23 (ожидает выхода в 2023 году)

Компиляторы и среды разработки

Для написания программ на языке С необходимы как минимум два компонента: текстовый редактор для написания исходного кода программы, и компилятор для компиляции кода в исполняемый файл. В качестве текстового редактора можно выбрать любой понравившийся. Я бы посоветовал кросcплатформенный редактор Visual Studio Code, который поддерживает плагины для разных языков, в том числе для C.

Среди компиляторов под Си следует выделить следующие компиляторы

  • GCC от проекта GNU

  • Clang

Так, если обратиться к опросу разработчиков, проведенному компанией JetBrains s 2022, то доли использования различных компиляторов среди разработчиков распределились следующим образом:

Какой компилятор для языка программирования C++ наиболее популярный

В дальнейшем на страницах этого руководства буду ориентироваться прежде всего на компилятор GCC, который на мой субъективный взгляд на сегодняшний день является наиболее распространенным.

Один из вопросов, который может возникнуть при выборе компилятора, - это поддержка компилятором определенных стандартов, особенно если мы хотим использовать некоторые возможности, которые были введены в последних стандартах. В этом случае можно обратиться к странице https://en.cppreference.com/w/c/compiler_support.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850