Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.
errno.h — заголовочный файл стандартной библиотеки языка программирования С, содержащий объявление макроса для идентификации ошибок через их код. POSIX-совместимые операционные системы, наподобие Unix и Linux, могут включать другие макросы для определения ошибок через собственные коды errno
. Значение errno
имеет смысл только тогда, когда системный вызов или функция возвращает признак ошибки.
В языках программирования Си и C++ #include guards, иногда также называемая macro guard (макрозащита) — это особая конструкция, применяемая для избежания проблем с «двойным подключением» при использовании директивы компилятора #include
. Добавление #include guards в заголовочный файл является одним из способов сделать этот файл идемпотентным, то есть таким, что многократные его подключения эквивалентны однократному и не приводят к ошибкам.
locale.h — заголовочный файл стандартной библиотеки языка программирования С, который используется для задач, связанных с локализацией.
assert.h — заголовочный файл стандартной библиотеки языка программирования С, в котором объявляется макрос препроцессора языка С assert
. Данный макрос реализует исключение, которое может использоваться для проверки сделанных программой вычислений.
float.h — заголовочный файл стандартной библиотеки языка программирования С, который содержит макросы, определяющие различные ограничения и параметры типов с плавающей точкой.
iso646.h — заголовочный файл, являющийся частью стандартной библиотеки языка Си. Был добавлен в библиотеку в 1995 году поправкой к стандарту C90. Файл определяет макросы, которые позволяют программистам использовать побитовые и логические операторы языка Си, которые без применения заголовочного файла не могут быть быстро или легко напечатаны на некоторых интернациональных и не-QWERTY клавиатурах.
Стандартной библиотекой языка Си называется часть стандарта ANSI C, посвященная заголовочным файлам и библиотечным подпрограммам. Является описанием реализации общих операций, таких как обработка ввода-вывода и строк, в языке программирования Си. Стандартная библиотека языка Си — это описание программного интерфейса, а не настоящая библиотека, пригодная для использования в процессе компиляции.
Препроцессор C/C++ — программа, подготавливающая код программы на языке C/C++ к компиляции.
stdio.h заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода. Функциональность унаследована от «портативного пакета ввода-вывода», написанного Майком Леском из Bell Labs в начале 1970-х. C++ ради совместимости также использует stdio.h
наряду со схожим по функциональности заголовочным файлом cstdio.
inttypes.h является заголовочным файлом стандартной библиотеки Си и соответствующего API. Он был добавлен в версии 1999 года ISO-стандарта языка Си. Он включает в себя заголовочный файл stdint.h. В нём определён ряд макросов для использования с семействами функций printf
и scanf
и функции для работы с типом intmax_t
.
signal.h — заголовочный файл, определенный в стандартной библиотеке языка Си, для указания того, как программа обрабатывает сигналы во время её выполнения. Сигнал может быть как синхронным с помощью вызова raise
, так и асинхронным.
stdlib.h — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контролем процесса выполнения программы, преобразованием типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib
. Название «stdlib» расшифровывается как «standard library».
stddef.h — заголовочный файл стандартной библиотеки языка программирования С, определяющий макросы NULL и offsetof, а также типы ptrdiff_t, wchar_t и size_t.
stdint.h — заголовочный файл стандартной библиотеки языка Си, введённый стандартом C99. Заголовочный файл объявляет несколько целочисленных типов и макросов.
C11 или ISO/IEC 9899:2011 — стандарт для языка Си, который заменил существующий стандарт C99. Официально о выпуске стандарта было объявлено 19 декабря 2011 года. Эта версия стандарта большей частью стандартизирует возможности, существующие в распространённых современных компиляторах. Из-за плохой совместимости текущих реализаций C99 со стандартом C11 включает в себя больше выборочных возможностей для упрощения совместимости со стандартом ядра языка. Действующий с 2018 года стандарт C18 фактически является уточнённым вариантом C11, исправляющим найденные в стандарте ошибки.
Система типов Си — реализация понятия типа данных в языке программирования Си. Сам язык предоставляет базовые арифметические типы, а также синтаксис для создания массивов и составных типов. Некоторые заголовочные файлы из стандартной библиотеки Си содержат определения типов с дополнительными свойствами.
stdnoreturn.h — заголовочный файл стандартной библиотеки языка программирования С, который предоставляет макрос для невозвратных функций. Данный заголовочный файл появился в стандарте C11.
C23 — неофициальное название следующего стандарта языка Си. Ожидается, что он будет принят в 2023 и следовательно будет называться C23.
Несовместимость Си и C++ — особенности языков программирования C++ и Си, затрудняющие перенос кода на языке Си на C++.