The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов GCC 13, opennews (??), 26-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


14. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (14), 26-Апр-23, 17:51 
Не особо нужен. char и значений 0, 1 всегда хватало.
Си, в отличие от C++ - это не о абстракциях.
Ответить | Правка | Наверх | Cообщить модератору

85. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Tron is Whistling (?), 26-Апр-23, 22:20 
Конкретно с char(byte) ты бахнешься на процах, которые требуют выравнивания при обращении к памяти.
Ну или займёшь 64-битное слово на каждый буль.
Ответить | Правка | Наверх | Cообщить модератору

97. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (97), 26-Апр-23, 23:12 
Плохому танцору известно что мешает. В 2023 жаловатся на вышеперечисленное просто смешно.
Ответить | Правка | Наверх | Cообщить модератору

124. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 27-Апр-23, 05:59 
Можно юнионом укладывать в чар 8 булей. А выравнивание -- это проблема компилятора.
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

133. "Релиз набора компиляторов GCC 13"  –2 +/
Сообщение от Аноним (133), 27-Апр-23, 08:46 
Чо... хранить логические переменные в одном бите? Ну можно, конечно, но изврат какой-то.
Ответить | Правка | Наверх | Cообщить модератору

137. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (137), 27-Апр-23, 09:05 
погугли, что такое программирование, а потом про битовые поля
Ответить | Правка | Наверх | Cообщить модератору

220. "Релиз набора компиляторов GCC 13"  +/
Сообщение от InuYasha (??), 27-Апр-23, 18:15 
И тут аноны откроют для себя флаги. )
Ответить | Правка | Наверх | Cообщить модератору

243. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (228), 27-Апр-23, 23:47 
они всегда были затратные если только одно битовое поле. Хард программирование исключается из утверждения.
Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

177. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 27-Апр-23, 13:30 
Нет, лучше в 64. Параллельно запивая смузи.

Обычный приём, который преподаётся в старших классах при изучении страктов и юнионов.

Ответить | Правка | К родителю #133 | Наверх | Cообщить модератору

275. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Срыватель покровов (?), 28-Апр-23, 10:23 
Мало в каких школах дают Сишечку. В основном дают Питон сейчас. Си скорее на первом курсе изучают.
Ответить | Правка | Наверх | Cообщить модератору

314. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 29-Апр-23, 17:20 
Верно, но это уже неустранимые проблемы нынешней системы образования, обсуждать которые -- значит скатиться в политоту.

Так-то по-нормальному в младших классах должны быть основы информатики -- алгоритмизация, простейшая формальная логика с соответствующими задачами. В средних классах -- Питон, в старших -- Джава/Си/Го/Хруст на выбор и основы системного администрирования.

Ответить | Правка | Наверх | Cообщить модератору

317. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (317), 30-Апр-23, 01:18 
В младших - Assembler, в средней школе - Brainfuck, в старших - Rust!
По выпуску устраивать в M$ архитекторами ядра.
Ответить | Правка | Наверх | Cообщить модератору

318. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 30-Апр-23, 01:36 
Молодец, теперь попробуй осуществить свой педагогический эксперимент, начав с собственных детей. Если, конечно, успел настрогать.
Ответить | Правка | Наверх | Cообщить модератору

245. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (245), 27-Апр-23, 23:59 
> Можно юнионом укладывать в чар 8 булей.

Лучше struct'ом. Проблема однако в том что это хотя и сэкономит RAM под були, сгенерит лишний код на RMW этого счастья. Результат как правило медленнее работает и жирнее по коду, так что особого профита с этого лайфхака не наступает.

Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

305. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 28-Апр-23, 20:36 
Код будет жирнее -- ну может быть, от компилятора и опций зависит. Что будет медленнее -- не верю.

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

Ответить | Правка | Наверх | Cообщить модератору

332. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 01-Май-23, 00:13 
> Код будет жирнее -- ну может быть, от компилятора и опций зависит.

Чтобы хранить 8 булей в 1 байте... внезапно, выставить бит в 1 более не немедленное присвоение переменной значения, типа mov r0, #1, а уже вполне себе RMW байта (или что там) - надо прочитать текущее значение, пропатчить, выставив в 1 нужный бит и сохранить назад. И обращений в память 2. Если неаккуратно делать можно еще и на гонки нарваться, если не байт а что-то крупнее и доступ не атомарный был.

> Что будет медленнее -- не верю.

А таки - может. И бывает.

> В крайнем случае можнно просто создать переменную типа int8_t,
> и для манипуляций с конкретным битом использовать операции по маске.

Так вы и тут на RMW пролетаете, вы ж не можете просто заассайнить ему нужное, еще и предыдущее сохранять надо! Иначе упакованые флаги отправятся нафиг.

> **/ не забыть написать, для чего используется каждый бит :)

Я пробовал и так и сяк. В 1м случае компилер врезает RMW, автоматически, в 2м случае еще и самому мануально надо, совсем уж хрень, возни больше, результат тот же (правда, u8 проще портабельно слать в IO/file/etc vs struct). А если bool как инт оформлен, RMW не надо, ведь там 1 бит, он сразу известен. Не надо чтение старого значения и маски, внезапно. Классический разгон скорости выполнения за счет большего потребления RAM.

Ответить | Правка | Наверх | Cообщить модератору

101. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от oficsu (ok), 26-Апр-23, 23:58 
Серьёзно, char в качестве bool? Чтобы strict aliasing многого о себе не возомнил? Типичный такой эффективный Си
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

238. "Релиз набора компиляторов GCC 13"  +1 +/
Сообщение от Аноним (228), 27-Апр-23, 23:13 
Поэтому в добром Си, на котором писали ОС, и не было этого типа. Была логика: 0 и всё остальное.
И можно выбирать для хранения выровненный тип.
Но пришло другое поколение и появился bool и auto (
Ответить | Правка | Наверх | Cообщить модератору

136. "Релиз набора компиляторов GCC 13"  +3 +/
Сообщение от Аноним (137), 27-Апр-23, 09:00 
то чувство, когда маленькие дети не знают про stdbool.h, но рассказывают всем о том, как всегда было
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру