13. C/C++ Ключевое слово const для переменных
Ключевое слово const для переменных Ключевое слово const для переменных Ключевое слово const удобно использовать для защиты переменных от изменения (случайного или умышленного) внутри ваших же функций/классов. Если попытаться обратиться и изменить переменную, защищенную ключевым словом const, то возникнет ошибка (на этапе компиляции). Переменные с ключевым словом const могут даже находится в защищенной области памяти […]
12. C/C++ Передача значения в функцию по ссылке/указателю
Передача значения в функцию по ссылке/указателю Ранее, мы писали функции например: int Sum(int a, int b) {return (a+b);} И возвращали результат функцией, но представим что нам понадобится изменить передаваемые значения: Напишем функцию, которая прибавит к передаваемому значению число 2 (т.е. изменит аргумент фунции) void Add_2(int a) { a=a+2; } Казалось бы – функция должна работать, […]
11. C/C++ Указатели, ссылки, адреса
Указатели, ссылки, адреса В предыдущий раз мы поговорили организации памяти в вычислителе, теперь поговорим как обращаться к этой памяти напрямую. Важно отметить, что из-за принципов работы с указателями и ссылками (их арифметики) вы можете вылезти за пределы своей программы и работать с некорректными данными, или помешать другой программе. необходимо отслеживать границы (особенно актуально для массивов) […]
23. C++ Перегрузка функций
C++ Перегрузка функций Частично перегрузку мы затронули во введении в языки C и C++, рассмотрим ее немного подробнее: Под перегрузкой функции понимается, определение нескольких функций (две или больше) с одинаковым именем, но различными параметрами. Наборы параметров перегруженных функций могут отличаться порядком следования, количеством, типом. Таким образом перегрузка функций нужна для того, чтобы избежать дублирования имён […]
C/C++ Директивы препроцессора
C/C++ Директивы препроцессора Препроцессор — это специальная программа, являющаяся частью компилятора языка Си. Она предназначена для предварительной обработки текста программы. Препроцессор позволяет включать в текст программы файлы и вводить макроопределения. Работа препроцессора осуществляется с помощью специальных директив (указаний). Они отмечаются знаком решетка #. По окончании строк, обозначающих директивы в языке Си, точку с запятой можно […]
C/C++ Ключевое слово extern
C/C++ Ключевое слово extern Ключевое слово extern применяют для того, чтобы совместно использовать одну и ту же переменную в разных модулях кода на языке C/C++. С помощью extern переменные становятся глобальными. Использование extern уместно только в тех случаях, когда построенная Вами программа состоит из нескольких исходных файлов, соединяемых вместе на этапе линковки, где некоторые переменные […]
C/C++ Указатель на функцию
C/C++ Указатель на функцию Иногда удобно использовать так называемые указатели на функции, за счет них можно произвести вызов любой функции, совпадающей по синтаксису не используя ее имя, а только по адресу в памяти, можно сказать что мы запоминаем адрес той функции, что нужно вызвать и подставляем вместо переменной-указателя на функцию. Синтаксис искомых функций и указателя […]
C++ Шаблонные функции
C++ Шаблонные функции Иногда удобно создать 1 шаблон, по которому будут обрабатываться любые данные, например: Нужно поменять местами 2 переменные, независимо от их типа (char, int, long…) Для этого удобно создать шаблон функции: template<typename T> void Swap (T &a, T &b) { T Temp=a; a=b; b=Temp; } В данном случае мы написали, что “T” является […]
12. C/C++ Работа с динамической памятью
C/C++ Работа с динамической памятью Работа с динамической памятью различна в языках C и C++, постараемся рассмотреть оба варианта Язык C: Стандартная библиотека cstdlib предоставляет четыре функции для управления памятью: void * malloc ( size_t size); // выделяет область памяти размера size. Данные не инициализируются. void * calloc ( size_t nmemb , size_t size); //выделяет […]
10. C/C++ Организация памяти и выполнение программ, стек и куча
C/C++ Организация памяти и выполнение программ, стек и куча Для начала вспомним как работает вычислитель (рассмотрим весьма утрированно, не погружаясь в работу АЛУ, РОН и тд) Внутри вычислителя есть память, в которой находится код программы (обычно это RAM / ОЗУ) внутри памяти каждый байт имеет смещение относительно начала памяти, именно это смещение и называют адресом […]