Х
Хроники c++/cpp
@cppunusualcode4 подп.
347просмотров
26 декабря 2023 г.
Score: 382
//Оптимизация #include <iostream> using namespace std; //Конечно, слово "оптимизация" может означать многое, но в этом примере речь пойдет о том, как работать с памятью более эффективно. //Мы изучили указатели и поняли их смысл. Теперь вернемся к типам данных. int a = 5; //Мы создали переменную. Эта переменная занимает место в памяти, но сколько? Переменная типа int занимает 4 байта, что может быть допустимо для обычной программы. Однако, представьте, что вы создаете игру, где все эти переменные в сумме весят очень много и занимают большое пространство в памяти. Но можно сэкономить память. // Тип int занимает 4 байта и имеет диапазон от -2,147,483,648 до +2,147,483,647. // Тип int8 занимает 1 байт и имеет диапазон от -128 до 127. //Тип int16 занимает 2 байта и имеет диапазон от -32,768 до 32,767. //Я изучал разные игровые движки, и там нет просто типа int, чаще всего используются только int16 или иногда int8. //Это идеально подходит для сложных проектов, и вот в чем заключается оптимизация. Допустим, у нас есть переменная "a", которая занимает 4 байта, и мне нужно еще 4 переменных: первая - 20, вторая - 50, третья - 100, четвертая - 45. Если я использовал бы тип int8, то эти переменные заняли бы всего 4 байта, в то время как при использовании типа int заняли бы 12 байт. Программист сэкономил место, и компьютеру игрока будет проще обрабатывать эти данные. Давайте просто создадим переменные и посмотрим, как работать с ними. int8_t b = 10; //Теперь, если у нас есть переменные "a" и "b", они занимают 5 байт, хотя они могли бы занять 8 байт. Если мне нужно число 255, то тип int8 не подойдет, так как его интервал ограничен значением 127, поэтому нужно использовать тип int16. int16_t c = 255; // Теперь у нас в памяти занимается 7 байт, так что мы сэкономили место. Если бы мы создали две переменные int "a" и "b", они бы занимали 8 байт. //Хотя это только начало, но такой момент также нужно учесть, если вы хотите создавать игры. /Чтение книг и документации рекомендуется для углубленного понимания. Идите и читайте, я не ваш учитель! P.S. Файл: data_type_int_1.cpp / #data_type #int #int8 #int16 #тип_данных #gamedev
347
просмотров
2146
символов
Нет
эмодзи
Нет
медиа

Другие посты @cppunusualcode

Все посты канала →