Union | Использование в С++ | Изучение С++ для начинающих. Урок

  Рет қаралды 42,267

#SimpleCode

#SimpleCode

6 жыл бұрын

Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
✅Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
✅ www.donationalerts.ru/r/simple...
✅ Telegram канал t.me/SergeySimpleCode
Уроки по программированию
✅Наша группа ВК smplcode
✅Подписывайтесь на канал / @simplecodeit

Пікірлер: 76
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@Penat_Vilikirentiy
@Penat_Vilikirentiy 6 жыл бұрын
Сделайте пожалуйста реальный бюджетненький проект на с++ в несколько уроков чтобы применить полученные знания, очень хочется практики под вашим руководством)
@user-gv1zx8cq4l
@user-gv1zx8cq4l 5 жыл бұрын
На С++ сделать что-то прикладное задача не простая), много времени надо потратить), возможно автор не располагает стольким временем
@andrewbistroff7558
@andrewbistroff7558 6 жыл бұрын
Сергей спасибо вам за ваше время которое вы тратите на нас, ждем интересного приложения на с++ и не одного, для закрепления полученных знаний, вы топ.
@AlexArGC
@AlexArGC 2 ай бұрын
Спасибо за ваш труд! Круто! union очень здорово помогает при приеме потоковых данных, когда ты складываешь байты с шины UART например в структуру по байтно а на выходе получаешь уже готовую структуру с float, double и т.п. разве что стоит проверить MBS и LBS. Часто так делали в устройства где между платами много обмена.... А работа с битовыми структурами + union ваще огонь в МК. Там на всем экономят.
@andreyzavalishchev4818
@andreyzavalishchev4818 6 жыл бұрын
Сергей, спасибо за информативный урок!
@user-sp9yg5jk3m
@user-sp9yg5jk3m 2 жыл бұрын
Отличные уроки! Большое спасибо за то что продолжаете делать их!
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
#union #SimpleCode #урокипрограммирования
@greatskydrake9531
@greatskydrake9531 3 жыл бұрын
простите, а где может быть полезен union ?
@Ermine882
@Ermine882 6 жыл бұрын
Спасибо за урок!
@pavelios3577
@pavelios3577 5 жыл бұрын
Спасибо за урок Сергей.
@user-fm4ni2mc8j
@user-fm4ni2mc8j 4 жыл бұрын
Здоровенное спасибо автору!!!
@user-rp6qg4yg2c
@user-rp6qg4yg2c 6 жыл бұрын
Спасибо за урок! Было бы очень здорово, что бы были домашние задания.
@digitalturkistan1857
@digitalturkistan1857 6 жыл бұрын
Спасибо за вклад науке
@KurpatovInstagram
@KurpatovInstagram 6 жыл бұрын
thanks!
@tapirskiy
@tapirskiy 4 жыл бұрын
Сергей, огромное спасибо Вам за уроки, была бы Вам очень благодарна, если бы Вы сделали небольшой обзор наиболее популярных графических библиотек
@eterniumsoul
@eterniumsoul 6 жыл бұрын
Круто, очень внятное объяснение. Спасибо. Во всех вводных статьях вобще не освящают юнионы, говорят только что они такие же как и структуры -_-
@Versie2007
@Versie2007 6 жыл бұрын
Достаточно интересная тема, за пределами основ c++. Лайк за неожиданность :)
@goretswot4019
@goretswot4019 6 жыл бұрын
почему неожиданность?)после классов идет struct после union)) законоерная последовательность
@dillonx992
@dillonx992 Жыл бұрын
Познавательно, спасибо
@mykhailomorhal2181
@mykhailomorhal2181 6 жыл бұрын
Спасибо)
@miroslavklyukovsky683
@miroslavklyukovsky683 2 жыл бұрын
Спасибо!
@kishivi
@kishivi 3 жыл бұрын
Важное замечание При записи (например) float в union мы используем все 4 байта памяти. Когда же мы хотим взять из этого же unium'а short int(2 байта), то мы будем кушать не первые 2 байта, а последние. Т.е., запись более маленьких переменных производится в конец выделенной памяти, а не в начало (как показано в ролике в paint'e)
@Hippan_
@Hippan_ 3 жыл бұрын
автор прав. Байты хранятся в перевернутом виде. к примеру, изначально выделилась память с мусором (в HEX-e удобней) 0d f0 ad ba записали мы short 12 она стала 0с 00 ad ba, затронулись только 2 байта. Затем загнали мы int 40000(0x9c40) стала 40 9с 00 00 затронулись четыре байта.
@user-ci2ku2oo5u
@user-ci2ku2oo5u 6 жыл бұрын
Мега круто))Только сегодня в книге наткнулась на задачу с применением union)))И заметила ваш урок))Огромное спасибо))
@user-kd7tg7yp5f
@user-kd7tg7yp5f 4 жыл бұрын
Можно ссылочку на книгу? Или название
@Mikhail_089
@Mikhail_089 4 жыл бұрын
Михаил Стоун вряд ли через 2 года Вероника сможет заметить твой вопрос) Но от хорошей книги с задачами и я бы не отказался
@user-yg8mt9fy8l
@user-yg8mt9fy8l 4 жыл бұрын
@@Mikhail_089 А ведь ему так и не ответили
@Viktor_Kardakov
@Viktor_Kardakov Жыл бұрын
так и не ответили...
@yippeeki-yey
@yippeeki-yey 6 жыл бұрын
Полезная вещь
@user-kb6qd8rg4g
@user-kb6qd8rg4g 4 жыл бұрын
спасибо
@sergeykirdyankin7027
@sergeykirdyankin7027 Жыл бұрын
Возможно есть смысл рассказать про int32_t .... и т.д.
@user-zc6jg3fd7r
@user-zc6jg3fd7r 4 жыл бұрын
Они не бесполезны. Данное свойство удобно при написании функций шифрования, при добавлении блоков текста, трансформированных в инт через юнион.
@emoboy277
@emoboy277 2 жыл бұрын
Можете пожалуйста более подробно объяснить, что вы имеете в виду, касаемо добавления блоков текста? Столкнулся с задачей обработки больших текстов (от полугигабайта) и ищу способы оптимизации, может быть union в этом деле будет очень полезным. Спасибо.
@sleepyNovember_project
@sleepyNovember_project 6 ай бұрын
Да уж, кажется бесполезной штукой, по крайней мере для пк и смартфонов, но объяснение очень понятное, это топчик.
@alexandrsargsyan2202
@alexandrsargsyan2202 2 жыл бұрын
maladec
@denys2957
@denys2957 6 жыл бұрын
Вооу, для меня это очень похоже на роботу с регистрами из Ассемблера, интересно, познавательно👌👍
@roman_roman_roman
@roman_roman_roman 3 жыл бұрын
роботу...🤦‍♂️
@denys2957
@denys2957 3 жыл бұрын
@@roman_roman_roman Раманчик, если ты обращаешь внимание автора на грамматические ошибки в 2020 то У тебя либо не закончился пубертат, либо тебе нужны пилюли в мозг Санитар, пилюлю
@roman_roman_roman
@roman_roman_roman 3 жыл бұрын
@@denys2957 , какой я тебе "Раманчик", дятел? И при чем здесь пилюли и пубертат? Набор слов.
@denys2957
@denys2957 3 жыл бұрын
@@roman_roman_roman Раманчик, сам ты дятел) Для тебя это набор слов, потому что ты не понимаешь их смысла
@roman_roman_roman
@roman_roman_roman 3 жыл бұрын
@@denys2957 , забавно, ты говоришь о словах, но не можешь написать элементарное слово "работа" без ошибок, и это в 2020, когда проверить правописание супер легко. Тут ни санитары, ни пилюли уже не помогут.
@talesuleymanov4778
@talesuleymanov4778 6 жыл бұрын
Privet spasibo za urok.s neterpeniyem jdu uroki po c#
@proKaps
@proKaps 6 жыл бұрын
Нет! Не надо C#! Лучше пусть автор освоит Unreal Engine и обучает нас C++ под Unreal Engine! А то на русском ничего хорошего нет вообще (да и плохого мало).
@isorport32
@isorport32 6 жыл бұрын
есть и полезные свойства юнион от совмещения, например битовое представление чисел, побайтовое и т.д. автор мог бы и раскрыть это.
@l_Nuril_l
@l_Nuril_l 2 жыл бұрын
1 -> О чёрт прости. 2 -> Не извиняйся, мой батя учил не стеснятся экономии места с union. Особенно когда они такого размера. 1 -> Да твой батя постарался. 2 -> Они экономят больше если я их сожму. 1 -> Хммм. 2 -> Иногда, я так увлекаюсь оптимизацией, что сбиваюсь с задачи. 1 -> О, а мой батя как раз рассказывал как не сбиваться с задачи используя чьи-то фреймворки на union вместо своих. 2 -> Ты покажешь мне? 1 -> С превеликим удовольствием. Кто понял отсылку лайк)
@Scrayerful
@Scrayerful 3 жыл бұрын
Не упомянули, добавлю: всегда считал union чем-то экзотическим и бесполезным. Пока мне не понадобилось вычитать float по шине i2c, чтение с которой осуществляется побайтно. Дак вот, почему union до сих пор востребован: интерпретация одних и тех же данных, как разные типы. Помещаем в Юнион массив из четырех uint8 и один float. Считываем данные побайтно в элементы массива, а во float имеем полноценное число.
@aturlanov
@aturlanov 2 жыл бұрын
А если мы в 4 байта записываем значение a (2 байтное), а потом записываем значение b (2 байтное), то b запишется в область поверх значения a, или добавиться в свободное место?
@lovxxs
@lovxxs 9 ай бұрын
Сказано же, что данные, которые были до этого стираются, то есть a сотрется, а b займет эту память. В отладчике легче всего понять это, я думаю
@user-iy5kd3tz3d
@user-iy5kd3tz3d 3 жыл бұрын
а есть смысл сейчас использовать union в современном С++ или это уже пережиток прошлого и такую вещь стоит использовать только в чем-то низкоуровневом например драйвер или разработка под микроконтроллеры ?
@user-io5xv9vb5b
@user-io5xv9vb5b 3 жыл бұрын
второе
@evgenykonovalov4870
@evgenykonovalov4870 2 жыл бұрын
ты царь
@user-nd4sl1lp9b
@user-nd4sl1lp9b Жыл бұрын
Хорошо иметь хоть малое представлении о юнион.Но в наше время можно про это ничего не знать.
@gamephoenix666
@gamephoenix666 6 жыл бұрын
какая тема будет следующей ?????
@ahtungs6274
@ahtungs6274 5 жыл бұрын
Хороший конвертер получается из типа int в тип float. И наоборот
@vitusink6445
@vitusink6445 4 жыл бұрын
Лучший конвертер это приведение типов :)
@user-ur3mc6hb5d
@user-ur3mc6hb5d 8 ай бұрын
​@@vitusink6445он немного другое имел ввиду. Если сделать приведение типов из флоат в инт, то двоичные данные тоже изменятся. А в этом случае такого не произойдёт
@nexusgaming1912
@nexusgaming1912 4 жыл бұрын
А где самое главное, как получить правильное значение переменной из Union?
@melonplayground5975
@melonplayground5975 4 жыл бұрын
Хммм, Union основан на кольцевом буфере?
@vitusink6445
@vitusink6445 4 жыл бұрын
Он основан на одной ячейке памяти, которую постоянно затирает, а потому актуальна только последняя переменная.
@realkjasonstatham
@realkjasonstatham 2 жыл бұрын
Комментарий
@wldzam
@wldzam 3 жыл бұрын
txs
@user-mg6zc2tw3i
@user-mg6zc2tw3i 5 жыл бұрын
К 1:30 понял к чему ты клонишь
@apelsin3001
@apelsin3001 4 жыл бұрын
что то я нехрена не понял зачем это надо? одну переменную записали поверх другой, перетерли, записали следующую, и как нам вытащить теперь первую переменную?
@alexandrvolchkov1619
@alexandrvolchkov1619 2 жыл бұрын
Очень удобно для обмена данными через порты ввода/вывода. Пакет для обмена может состоять из любых типов данных, а в порт отправляется/принимаются байты.
@secretsecret1713
@secretsecret1713 8 ай бұрын
У меня все равно вопрос, извините за мой французкий, нах...я? Я вот читаю книги по более углубленным темам программирования и вот часто натыкаюсь на юнионы в коде, со структурами понятно, они как бы примитив классов и в низкоуровневом программирований они необходимы. Но вот с юнионами я никак не могу понять их назначения. Зачем объединять разные поля в один юнион, смысл?
@arthurr172
@arthurr172 8 ай бұрын
Объединения (union) также позволяют определить свой тип данных и также хранят набор элементов, но в отличие от структуры все элементы объединения имеют нулевое смещение. А это значит, что разные элементы занимают в памяти один и тот же участок, то есть в памяти они накладываются друг на друга.
@sleepyNovember_project
@sleepyNovember_project 6 ай бұрын
Например, создашь ты 4 переменных int a; int b; double c; double d; в общем выделится 24 байта, даже если не используешь эти переменные. Если же записать в Union union numeric { int a; int b; double c; double d; }; Хоть всё можно будет использовать только попеременно, но зато это объединение займёт 8 байт вместо 24 Выглядит как неплохая экономия для каких-нибудь микрочиповых устройств, чтобы писать что-нибудь нормальное для них, укладываясь а их лимиты. P.S. Но думаю смысла записывать одинаковые типы данных по несколько раз не то что бы много, если только чтобы у них были разные имена для визуального удобства.
@RUSlTUZ
@RUSlTUZ 6 жыл бұрын
Короче говоря, практически бесполезная хрень в современных реалиях
@vitusink6445
@vitusink6445 4 жыл бұрын
Несомненно. Компромисс это всегда некое извращение.
@Antonov_Ivan.
@Antonov_Ivan. 5 ай бұрын
Спасибо за урок!
@DD0S2
@DD0S2 3 жыл бұрын
спасибо
Собеседование Middle C++
1:01:50
Ambushed Raccoon
Рет қаралды 29 М.
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 19 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 10 МЛН
Fast and Furious: New Zealand 🚗
00:29
How Ridiculous
Рет қаралды 45 МЛН
Всё об указателях в C++ за 20 минут
20:00
Зачем нужны указатели в C++?
8:14
Dima
Рет қаралды 11 М.
Создание сборщика мусора | С
16:02
Winderton
Рет қаралды 136 М.
Добро пожаловать в C++
16:08
Winderton
Рет қаралды 457 М.
C++ Разработчик учит Python
28:01
Winderton
Рет қаралды 503 М.
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 19 МЛН