
Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.
Переполнение буфера — явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера.
NULL в языках программирования Си и C++ — макрос, объявленный в заголовочном файле stddef.h. Значением этого макроса является зависящая от реализации константа нулевого указателя.
printf — обобщённое название семейства функций или методов стандартных или широко известных коммерческих библиотек, или встроенных операторов некоторых языков программирования, используемых для форматного вывода — вывода в различные потоки значений разных типов, отформатированных согласно заданному шаблону. Этот шаблон определяется составленной по специальным правилам строкой.
Callback или фу́нкция обра́тного вы́зова в программировании — передача исполняемого кода в качестве одного из параметров другому коду. Обратный вызов позволяет в функции исполнять код, который задаётся в аргументах при её вызове. Этот код может быть определён в других контекстах программного кода и быть недоступным для прямого вызова из этой функции. Некоторые алгоритмические задачи в качестве своих входных данных имеют не только числа или объекты, но и действия (алгоритмы), которые естественным образом задаются как обратные вызовы.
Вариативный макрос — возможность препроцессором Си при помощи специального макроса объявлять поддержку различного числа аргументов.
assert.h — заголовочный файл стандартной библиотеки языка программирования С, в котором объявляется макрос препроцессора языка С assert
. Данный макрос реализует исключение, которое может использоваться для проверки сделанных программой вычислений.
Препроцессор C/C++ — программа, подготавливающая код программы на языке C/C++ к компиляции.
C99 — стандарт языка программирования Си. Определен в ISO/IEC 9899:1999, современная версия - ISO/IEC 9899:1999/Cor 3:2007 от 2007-11-15. Является развитием стандарта C90.
Язык программирования Си поддерживает множество функций стандартных библиотек для файлового ввода и вывода. Эти функции составляют основу заголовочного файла стандартной библиотеки языка Си <stdio.h>
.
signal.h — заголовочный файл, определенный в стандартной библиотеке языка Си, для указания того, как программа обрабатывает сигналы во время её выполнения. Сигнал может быть как синхронным с помощью вызова raise
, так и асинхронным.

Go — компилируемый многопоточный язык программирования, разработанный внутри компании Google. Разработка Go началась в сентябре 2007 года, его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno. Официально язык был представлен в ноябре 2009 года. На данный момент поддержка официального компилятора, разрабатываемого создателями языка, осуществляется для операционных систем FreeBSD, OpenBSD, Linux, macOS, Windows, DragonFly BSD, Plan 9, Solaris, Android, AIX.. Также Go поддерживается набором компиляторов gcc, существует несколько независимых реализаций.
fenv.h — заголовочный файл стандартной библиотеки языка Си, содержащий объявление типов данных для работы с числами с плавающей запятой.
stdint.h — заголовочный файл стандартной библиотеки языка Си, введённый стандартом C99. Заголовочный файл объявляет несколько целочисленных типов и макросов.

Система типов Си — реализация понятия типа данных в языке программирования Си. Сам язык предоставляет базовые арифметические типы, а также синтаксис для создания массивов и составных типов. Некоторые заголовочные файлы из стандартной библиотеки Си содержат определения типов с дополнительными свойствами.
В программировании функции с переменным числом аргументов называются вариативными.
В вычислительной технике встраивание функций — способ оптимизации, при котором вызов функции заменяется непосредственно её телом. Встраивание функций аналогично по сути подстановке из макроса, но в отличие от неё не изменяет исходный код и происходит во время компиляции, в то время как макросы изменяют исходный код перед компиляцией.
Несовместимость Си и C++ — особенности языков программирования C++ и Си, затрудняющие перенос кода на языке Си на C++.
В программировании массив переменной длины представляет собой массив, длина которого определяется во время выполнения . В C массив переменной длины имеет управляемый переменной тип, который зависит от какого-либо значения.
Синтаксис определяет то, как должны правильно записываться языковые конструкции, в то время как семантика определяет значения языковых конструкций. Синтаксис языка Си достаточно сложный, а семантика неоднозначная. Основными двумя особенностями языка на момент его появления были унифицирование работы с массивами и указателями, а также схожесть того, как что-либо объявляется, с тем, как это в дальнейшем используется в выражениях. Однако в последующем эти две особенности языка были в числе наиболее критикуемых, и обе являются сложными для понимания среди начинающих программистов. Стандарт языка, определяя его семантику, не стал слишком сильно ограничивать реализации языка компиляторами, но этим самым сделал семантику недостаточно определённой. В частности, в стандарте есть 3 типа недостаточно определённой семантики: определяемое реализацией поведение, не заданное стандартом поведение и неопределённое поведение.