Темы

Программирование на C и C++

C and C++ programming · 91 статей

  1. Метасинтаксические переменные в программировании

    Метасинтаксические переменные в программировании: что такое foo, bar, plugh? Примеры использования в коде и RFC. Placeholder для замены в программах.

    #4841 · 2 мин чтения

  2. Пространства имен в информатике

    Пространство имён в IT: уникальные идентификаторы объектов, иерархическая структура, избежание конфликтов имён. Объяснение с примером.

    #5243 · 7 мин чтения

  3. Перегрузка операторов в языках программирования

    Перегрузка операторов в программировании: что это, как работает, плюсы и минусы. Различия в реализации в разных языках, примеры (C++).

    #5429 · 2 мин чтения

  4. Шаблоны в языке программирования C++

    Шаблоны C++: обобщённое программирование, работа с разными типами данных без повторения кода. Реализация в заголовочных файлах (*.h).

    #7541 · 1 мин чтения

  5. Предварительные условия в программировании

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

    #9246 · 2 мин чтения

  6. Арифметический сдвиг в программировании

    Арифметический сдвиг в программировании: виды (влево, вправо), языки (Java, C++, Python, и др.) и процессоры, использующие эту битовую операцию.

    #9593 · 5 мин чтения

  7. Венгерская нотация в программировании

    Венгерская нотация в программировании: соглашения об именовании идентификаторов, указывающие тип или назначение переменной. История и применение в BCPL, Windows API.

    #10374 · 5 мин чтения

  8. Чувствительность к регистру: определение и применение

    Чувствительность к регистру: что это такое? Различия между строчными и прописными буквами в компьютерах, языках программирования и поисковых запросах.

    #10844 · 3 мин чтения

  9. Зарезервированные слова и ключевые слова в языках программирования

    Зарезервированные слова в программировании: что это такое и чем отличаются от ключевых слов. Определение, примеры использования и синтаксис.

    #11654 · 11 мин чтения

  10. Двоичный интерфейс между программными модулями

    ABI: интерфейс между двоичными модулями программ. Определяет доступ к данным в машинном коде, в отличие от API. Важно для совместимости и работы библиотек.

    #14162 · 2 мин чтения

  11. Объединение строк в программировании

    Объединение строк в программировании: конкатенация, оператор "+", работа со строками и списками. Основы и примеры из языков программирования.

    #15054 · 3 мин чтения

  12. Абстрактный синтаксис данных в информатике

    Абстрактный синтаксис в информатике: структура данных как тип, без привязки к представлению. Деревья синтаксиса, FOAS и высший порядок.

    #17167 · 1 мин чтения

  13. Препроцессоры: обработка данных перед компиляцией

    Препроцессор в программировании: что это такое? Обработка входных данных для компилятора, макросы, текстовые подстановки. C, PL/I и другие языки.

    #18414 · 4 мин чтения

  14. Свободные и связанные переменные: математическое и компьютерное понимание.

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

    #46637 · 3 мин чтения

  15. Представление строк в исходном коде: нотация и разбор коллизий разделителей.

    Строковые литералы в программировании: обозначение, экранирование, разделители. Разные языки программирования используют разные способы записи строк.

    #58109 · 1 мин чтения

  16. Операции CAR и CDR в языке Lisp

    CAR и CDR в Lisp: примитивные операции для работы с cons ячейками. Извлекают первый (CAR) и второй (CDR) элементы из пар данных в Lisp.

    #59296 · 2 мин чтения

  17. Функция cons в Lisp и функциональном программировании

    Функция `cons` в Lisp: создание пар данных, основная структура для хранения двух значений или указателей. Ключевой элемент функционального программирования.

    #59701 · 2 мин чтения

  18. Списки и последовательности в информатике.

    Список в информатике: абстрактный тип данных для упорядоченных значений. Реализация через массивы и связные списки. Контейнер для хранения данных.

    #59743 · 4 мин чтения

  19. Макропрепроцессор C: история и новые возможности

    Препроцессор C: макросы, включение файлов, условная компиляция для C, C++, Fortran и других языков. История и возможности препроцессора.

    #63884 · 6 мин чтения

  20. Глобальные переменные в программировании

    Глобальные переменные в программировании: область видимости, время жизни, отличие в компилируемых и интерпретируемых языках. Объявление и использование.

    #70158 · 4 мин чтения

  21. Параметры и аргументы в программировании

    Параметры и аргументы в программировании: различие, назначение и использование входных данных функций и подпрограмм. Объяснение с примерами кода.

    #79080 · 3 мин чтения

  22. Стандартная библиотека языка C

    Стандартная библиотека C (libc) для программирования: функции для работы со строками, математики, ввода/вывода, памяти и ОС. ISO C стандарт.

    #79082 · 8 мин чтения

  23. Примитивные типы данных в программировании

    Примитивные типы данных в программировании: основы, определение, роль в построении других типов. Важные понятия для разработчиков и IT-специалистов.

    #80867 · 3 мин чтения

  24. Строки с нулевым терминатором: история и недостатки

    Строки с завершением нулем (C-строки): структура данных в программировании. Особенности хранения, поиск длины, ограничения и производительность.

    #81644 · 5 мин чтения

  25. L- и R-значения в программировании

    Значение в программировании: представление данных, манипулируемое программой. L-value, r-value, референциальная прозрачность – ключевые понятия.

    #81673 · 4 мин чтения

  26. Стандартная библиотека языка программирования

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

    #87459 · 2 мин чтения

  27. Стандартная библиотека C++: классы и функции

    Стандартная библиотека C++: классы, функции, контейнеры, строки, потоки ввода/вывода. Поддержка C и общие задачи в программировании на C++.

    #89032 · 11 мин чтения

  28. Полиморфизм: Применение функций к аргументам разных типов

    Полиморфизм в программировании: ad hoc полиморфизм, перегрузка функций и операторов. Различия между ad hoc и параметрическим полиморфизмом. Объяснение и примеры.

    #89943 · 3 мин чтения

  29. Перегрузка функций в языках программирования

    Перегрузка функций в программировании: создание нескольких функций с одним именем, но разной реализацией. Избегайте неоднозначности при вызове!

    #95091 · 2 мин чтения

  30. Встроенные функции в C и C++

    inline-функции в C и C++: оптимизация кода заменой вызовов тела функции, изменение связей при компиляции. Подробно о директиве inline и её влиянии.

    #96851 · 3 мин чтения

  31. Размеченные объединения: структура данных с вариантами типов

    Разбор тегированных объединений (tagged unions) в программировании: структура данных для хранения значений разных типов. Варианты, копродукты, рекурсивные типы.

    #101183 · 6 мин чтения

  32. Синтаксис языка программирования C: правила и особенности

    Синтаксис языка C: правила написания программ, особенности работы с числами (целые, вещественные, комплексные) и высокая переносимость. 💻

    #101732 · 2 мин чтения

  33. Приоритет операторов в программировании

    Приоритет операторов в программировании: определение, анализ выражений, операнды и операторы, роль скобок. Основы синтаксиса и грамматики.

    #102156 · 2 мин чтения

  34. Цикл For: Устройство, История и Применение

    Цикл for в программировании: что это, как работает, структура (заголовок и тело). Повторное выполнение кода до выполнения условия. Основы итерации.

    #103602 · 3 мин чтения

  35. Функция printf в языке C: Форматирование и вывод текста

    Функция printf в C: форматирование и вывод текста. Узнайте о синтаксисе, строках формата и семействе функций printf для эффективной работы с выводом данных.

    #104333 · 4 мин чтения

  36. Объединения: переменные разных типов в одной памяти.

    Объединение (union) в программировании: тип данных, хранящий переменные разных типов в одной области памяти. Экономия памяти, альтернатива структурам.

    #107294 · 4 мин чтения

  37. Неопределённое поведение в программировании

    Неопределённое поведение в программировании: что это такое и к чему приводит? Объяснение UB, его отличие от других типов поведения и примеры в C.

    #110689 · 5 мин чтения

  38. Конструкторы копирования в C++: особенности и применение

    Конструктор копирования в C++: создание объектов как копий существующих. Автоматически или определяемый пользователем. Важные нюансы и применение.

    #114267 · 1 мин чтения

  39. Преобразование типов данных в программировании

    Преобразование типов данных в программировании: неявное и явное, примитивные и составные типы. Объяснение понятий и примеры конвертации данных.

    #115939 · 3 мин чтения

  40. Операторы в C и C++: Сходства и различия

    Операторы C и C++: полный список, поддержка в C, особенности C++. Узнайте о перегрузке операторов, приведении типов и приоритете операций.

    #120089 · 2 мин чтения

  41. Стандарт языка C: Ревизия 1999 года (C99)

    C99: стандарт языка программирования C 1999 года. Расширение C90, поддержка IEEE 754, улучшенная работа с железом. Обновлен стандартом C11.

    #123172 · 3 мин чтения

  42. Функция eval: Оценка строк как кода в языках программирования

    Функция eval в программировании: оценка строк как кода. Различия между eval и exec, мета-оцениватели, интерпретаторы. Python, Lisp и другие языки.

    #125767 · 4 мин чтения

  43. Тернарный условный оператор в программировании

    Тернарный оператор в программировании: краткая форма условного оператора if-else. Синтаксис, примеры использования в разных языках (C, Raku, Visual Basic).

    #131834 · 4 мин чтения

  44. Операции выделения срезов массивов в программировании

    Нарезка массивов в программировании: извлечение подмножеств данных для создания новых массивов. Примеры, особенности и оптимизация памяти.

    #133719 · 3 мин чтения

  45. Короткое замыкание в программировании

    Короткое замыкание в программировании: оптимизация вычислений логических операций (AND, OR). Языки с ленивыми вычислениями и выбор операторов.

    #135807 · 2 мин чтения

  46. Конвенция именования Лешински: особенности и применение в Access и VBA

    Конвенция именования Лешински (LNC) для Access и Visual Basic: префиксы для типов объектов и полей БД. История и отличия от RVBA Conventions.

    #136611 · 3 мин чтения

  47. Числовая башня в Scheme и Lisp

    Числовая башня в Scheme и Lisp: иерархия типов данных для чисел, неявные преобразования, оптимизация представления и эффективности вычислений.

    #136699 · 3 мин чтения

  48. Вариативные макросы в C и C++

    Вариативные макросы в C/C++: приём переменного числа аргументов. Поддержка с C99, C++11, расширения в C++20/C23. Функциональные макросы и их применение.

    #137164 · 1 мин чтения

  49. Декорирование имён в компиляторах

    Декорация имён (name mangling) в компиляторах: техника для уникальной идентификации функций и структур, необходимая для линковки и перегрузки функций.

    #138212 · 8 мин чтения

  50. Пустая строка: теория и реализация в программировании

    Пустая строка в теории языков и программировании: уникальность, длина 0, хранение в памяти. Различия между формальным определением и реализацией.

    #148805 · 2 мин чтения

  51. Операторы в программировании: синтаксис и семантика

    Операторы в программировании: что это такое? Арифметические, логические, сравнения, присваивания и другие – синтаксис и применение в коде.

    #151914 · 5 мин чтения

  52. Директивы и прагмы в программировании: управление компиляцией

    Директивы и прагмы в программировании: как они влияют на компиляцию кода. Управление поведением компилятора, оптимизация и особенности синтаксиса.

    #161147 · 2 мин чтения

  53. Ключевое слово `volatile` в программировании: особенности и применение.

    Ключевое слово `volatile` в программировании: предотвращает оптимизацию компилятора, обеспечивает доступ к актуальным данным в многопоточности и при работе с оборудованием.

    #162716 · 2 мин чтения

  54. Структуры в языке C: определение и применение.

    Структуры в C: создание составных типов данных для хранения разнородной информации. Объединение переменных под одним именем, доступ через указатели.

    #168401 · 2 мин чтения

  55. Указатели и ссылки: понятие нулевого указателя и его последствия

    Указатель NULL: что это такое? Объяснение понятия нулевого указателя/ссылки в программировании, его отличие от неинициализированного указателя и применение.

    #189962 · 5 мин чтения

  56. Реляционные операторы в программировании

    Реляционные операторы в программировании: сравнение, равенство, неравенство. Возвращают true/false или 0/1 в разных языках. Основы синтаксиса и условия.

    #193006 · 7 мин чтения

  57. Точки последовательности в C и C++

    Точки последовательности в C/C++: гарантия выполнения побочных эффектов выражений. Важны для определения корректности и результатов кода. Последовательность операций.

    #196612 · 4 мин чтения

  58. Вложенные функции в программировании

    Вложенные функции в программировании: определение, область видимости и использование. Поддержка в JavaScript, ALGOL, Pascal и функциональных языках.

    #203106 · 6 мин чтения

  59. Объявление функции и прототипы функций

    Объявление функций в программировании: прототипы, сигнатуры, типы данных. Разделение кода на модули в C/C++. Интерфейсы и внешние типы.

    #204972 · 1 мин чтения

  60. Операция взятия остатка от деления (Modulo)

    Операция Modulo: остаток от деления в программировании. Объяснение с примерами, определение, диапазон значений и применение в вычислениях.

    #208800 · 3 мин чтения

  61. Интернирование строк: структура данных для повторного использования строк

    Интернирование строк: экономия памяти и времени при работе с текстом. Хранение единственного экземпляра уникальных строк в пуле, оптимизация в Java и других языках.

    #215757 · 4 мин чтения

  62. Динамические массивы: структура данных с изменяемым размером

    Динамический массив: структура данных с переменным размером для добавления/удаления элементов. Обзор, примеры (C++, Java, Rust) и преимущества.

    #219172 · 1 мин чтения

  63. Сигилы в программировании: обозначение типов и области видимости переменных

    Сигил в программировании: символ перед именем переменной, указывающий тип или область видимости. Популяризирован BASIC, пример – знак $ для строк.

    #222623 · 7 мин чтения

  64. Функции с переменным числом аргументов

    Вариадные функции: что это такое? Узнайте о функциях с переменным числом аргументов в математике и программировании. История и примеры использования.

    #230535 · 3 мин чтения

  65. Знак числа в программировании: signed и unsigned типы данных.

    Знаковые и беззнаковые типы данных в программировании: различие, диапазон значений, представление отрицательных чисел и оптимизация памяти.

    #233942 · 2 мин чтения

  66. Квалификатор типа `const` в языках программирования C-семейства.

    Ключевое слово `const` в программировании: описание, применение в C, C++, JavaScript и других языках. Обозначение неизменяемых данных и указателей.

    #237053 · 8 мин чтения

  67. Локальные переменные в программировании: область видимости и особенности

    Локальные переменные в программировании: область видимости, преимущества использования, отличие от глобальных переменных. Основы модульного программирования.

    #244951 · 4 мин чтения

  68. Автоматические переменные в программировании

    Автоматические переменные в программировании: локальные переменные, выделяемые и освобождаемые при входе/выходе из области видимости. Рекурсия, область действия.

    #247256 · 3 мин чтения

  69. Механизмы вызова подпрограмм в компьютерах

    Вызовы подпрограмм в компьютерах: соглашения о вызовах, передача параметров через регистры/стек, важность для корректной работы программ.

    #252193 · 7 мин чтения

  70. Соглашения об именовании в программировании

    Соглашения об именовании в коде: правила для переменных, функций и типов. Улучшают читаемость, упрощают ревью и анализ качества кода. 🚀

    #265007 · 11 мин чтения

  71. Тип void в программировании

    Тип void в программировании: функции без возвращаемого значения. Используется для выполнения задач и побочных эффектов. Сравнение с Pascal и функциональными языками.

    #276800 · 1 мин чтения

  72. Флаги в программировании: назначение и применение.

    Флаги в программировании: биты для обозначения статусов, условий и атрибутов данных. Объяснение использования и значения флагов в коде и структурах данных.

    #279608 · 1 мин чтения

  73. Переполнение в компьютерной арифметике

    Переполнение целых чисел в программировании: причины, последствия и риски для безопасности. Как избежать ошибок и когда "переполнение" может быть полезным.

    #285102 · 12 мин чтения

  74. Типы данных в языке программирования C

    Типы данных в C: целые, вещественные, массивы и структуры. Статья о семантике, характеристиках хранения и операциях с данными в языке C.

    #291234 · 2 мин чтения

  75. Защита от многократного включения заголовочных файлов в C и C++

    Защита от двойного включения в C/C++: guards предотвращают повторную обработку заголовочных файлов, обеспечивая корректную компиляцию кода.

    #320017 · 3 мин чтения

  76. Магия в программировании: абстракция и скрытая сложность

    Магия в программировании: что это такое? Абстракция, скрывающая сложность кода за простым интерфейсом. Perl, "черная магия" и понятный код – разбираемся!

    #327627 · 3 мин чтения

  77. Полевые биты в программировании

    Битовые поля в программировании: структура данных для хранения битов. Оптимизация памяти, флаги, булевы значения, регистры состояния CPU.

    #329816 · 2 мин чтения

  78. Булевы выражения в программировании

    Булевы выражения в программировании: логические операции (И, ИЛИ, НЕ), значения Истина/Ложь. Основы логики и Boolean circuits в коде.

    #363552 · 1 мин чтения

  79. Лексический хак: обходной путь при разборе ANSI C и современные альтернативы.

    Лексический хак в C: решение проблем разбора из-за контекстной чувствительности грамматики. Обратная связь от семантического анализа к лексеру.

    #372091 · 2 мин чтения

  80. Стробирование в языках программирования: история и современные примеры

    Строппинг в языках программирования: способ разграничения ключевых слов и идентификаторов. История, преимущества и отличия от современных методов.

    #397016 · 3 мин чтения

  81. Функции для работы со строками в программировании

    Строковые функции в программировании: манипуляции, запросы информации о строках. Реализация в разных языках – от свойств объектов до операций со списками.

    #400296 · 1 мин чтения

  82. Тип данных long double в языках C

    Тип данных long double в C: точность, реализация на x86, соответствие стандартам C89/C99/C11. Константы с суффиксом "L". Подробное описание.

    #400541 · 4 мин чтения

  83. Классы и структуры данных в C++

    Классы в C++: создание пользовательских типов данных и структур. Приватные, защищенные и публичные члены, объекты и функции-члены. Основы ООП.

    #411456 · 4 мин чтения

  84. Математические функции и генерация случайных чисел в C

    Математические функции C: обзор стандартной библиотеки, операций с числами с плавающей точкой и заголовков <math.h>, <tgmath.h>. C и C++ реализация.

    #425773 · 2 мин чтения

  85. Номинальные Типовые Системы в Информатике

    Номинальная типизация в программировании: определение совместимости типов по имени, а не структуре. Отличие от структурной типизации, примеры в C.

    #444732 · 2 мин чтения

  86. Оператор sizeof в C и C++: размер типов и выражений

    Оператор sizeof в C/C++: определяет размер выражения или типа данных в байтах. Гарантированно sizeof(char) = 1. Подробности и связь с limits.h.

    #445643 · 3 мин чтения

  87. Удаление пробелов в строках: функции и особенности реализации в разных языках программирования.

    Удаление пробелов в строках: trim, ltrim, rtrim, lstrip, rstrip. Обзор функций для очистки строк от начальных и конечных пробелов в программировании.

    #446013 · 2 мин чтения

  88. Enumerated type

    #457982 · 2 мин чтения

  89. Semipredicate problem

    #461057 · 4 мин чтения

  90. C date and time functions

    #489869 · 2 мин чтения

  91. Conditional operator

    #501305 · 2 мин чтения