1.2, Аноним (2), 23:21, 17/09/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
> механизм "#embed" для интеграции бинарных ресурсов;
Джва года ждал.
| |
|
2.20, Аноним (20), 04:08, 18/09/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Там уже было, сам лично делал, только там нужно было делать финты пистоном.
С23 очень годные изменения привнёс, второе пришествие С11.
| |
|
|
|
3.43, Аноним (43), 10:01, 18/09/2024 [^] [^^] [^^^] [ответить]
| –11 +/– |
Платформозависимый int – главное достижение человечества. Надо по рукам бить тех, кто тащит, например, uint64_t на 8-бит микруху. Код должен быть написан так, чтобы типы были без фиксированного размера. Тогда код будет на любой архитектуре работать оптимально.
| |
|
4.46, Аноним (-), 10:37, 18/09/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Платформозависимый int – главное достижение человечества. Надо по рукам бить тех, кто тащит, например, uint64_t на 8-бит микруху.
А кто ему запретит)?
Это же не компилятор других языков, который будет лупить по рукам за кривой код.
> Код должен быть написан так, чтобы типы были без фиксированного размера. Тогда код будет на любой архитектуре работать оптимально.
Отличная идея!
int main(void) {
int a = +2147483647;
int b = a + 1;
return 0;
}
выдает разные значения на разных платформах в зависимости от размера типа.
| |
|
5.54, Admino (ok), 12:14, 18/09/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> выдает разные значения на разных платформах в зависимости от размера типа.
Сей код значений не выдаёт.
| |
|
4.47, Аноним (43), 10:55, 18/09/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Отличная идея!
Так у вас пример архитектурозависимого кода. Диды умещали в 256 всё необходимое, даже игры делали. Что изменилось? Люди обленились и не оптимизируют логически переменные.
Да, некоторые переменные должны вмещать большие данные. Вот их, как единичные исключения, делать фиксированными.
| |
|
5.52, trolleybus (?), 11:17, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Диды умещали в 256 всё необходимое, даже игры делали.
Так вот то, что в 256 помещается, и надо делать uint8_t. Кроме этого, есть всякие uint_least8_t, uint_fast8_t для оптимизации по скорости.
| |
5.68, _ (??), 19:01, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Диды умещали в 256 всё необходимое, даже игры делали.
На Радио86 \ Микроша \ Sinclair *\ Yemaha MSX int был 8 bit - surprise bro!
>Что изменилось?
На том, из чего ты накропал свой гениальный пост int - 64 bit ...
>Люди обленились и не оптимизируют логически переменные.
И правильно, пусть вон - ChatGPT с Copilot напрягаются! :)
| |
|
6.74, Аноним (74), 10:42, 19/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
int не может быть 8 бит даже в Нарнии, даже в Гаррипоттере, даже в C89.
>На том, из чего ты накропал свой гениальный пост int - 64 bit ...
Модель ILP64 встречалась на том, что давно в музее, поэтому нет, не 64 битный у него инт.
| |
|
|
4.69, nc (ok), 23:04, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вообще говоря типы без фиксированного размера это частный случай трейтов. Т.е. мы говорим "нам здесь нужен какой-то целочисленный тип с такими-то свойствами" и компилятор сам выводит этот тип. Если язык в явном виде поддерживает такое - это замечательно. Но Си поддерживает нечто очень урезанное (не вывод типа а платформозависимость), просто потому что так сложилось исторически, что плохо.
| |
|
5.71, Аноним (-), 00:37, 19/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Дайте пожалуйста определение трейтов на С. Или вы не понимаете что такое трейты или я чего-то не понял.
| |
|
|
|
|
|
2.25, Хру (?), 07:06, 18/09/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Так возьми и запили! Будет gccd и благодарность в примечаниях к выпуску. А так же очередь из рекрутеров из топ-компаний планеты :)
| |
|
3.61, Аноним (61), 16:23, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Так возьми и запили!
Моей квалификации хеллоувротщика не хватит, увы.
| |
3.72, Аноним (-), 00:40, 19/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Есть cmake. Хотя мне не нравится. Я хоть и любитель, вообще не Си программист, но могу запилить. Просто компилятор, который исследует изменение в файлах и начинает компиляцию? Это реально нужно?
| |
|
|
3.63, Аноним (61), 16:24, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Тебя как программиста (если ты таковой) лицензия должна волновать в самую последнюю очередь.
| |
|
|
3.56, Аноним (56), 12:41, 18/09/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Они всё у GCC слизали!
Что именно? Огласите список!
Они создавались со свободной лицензией, как противовес раковому GCC.
Чтобы не зависеть от левой (слегка погрызаной) пятки фанатиков, которым аж в 2009 году пришлось публиковать GCC Runtime Library Exception - без которых был спор является ли результат компиляции derivative work или нет.
gnu.org/licenses/gcc-exception-3.1.html
| |
|
4.66, Аноним (-), 17:12, 18/09/2024 [^] [^^] [^^^] [ответить] | –2 +/– | 1 1990-е гг корпорасты наивно полагали, что поскольку есть C , то чистая Сишк... большой текст свёрнут, показать | |
|
5.70, Аноним (-), 23:14, 18/09/2024 [^] [^^] [^^^] [ответить] | +/– | Какое господство гну Тогда они даже однопроцентниками не были Аппл боялась лиц... большой текст свёрнут, показать | |
|
|
3.64, Аноним (61), 16:25, 18/09/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это не важно. Важно что они предоставляют фишки, которых нет у гцц. А лицензии волнуют только вахтеров.
| |
|
|
|
2.29, Страуструп (?), 08:28, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Errorsoft, дело в том что не моя проблема, программисты пишут кривые оптимизаторы. Было дело ядро линукс не смогли собрать из за оптимизации в какой то новой GCC с флагом -o2.
| |
|
3.40, letsmac (ok), 09:42, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
С флагом -O2 GCC много чего не собирается. Питон недавно пробовал собрать на плате с arm7 с -O2 - не вышло.
| |
|
|
1.34, n00by (ok), 09:16, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
> В режиме C++14 включена по умолчанию поддержка функции
> delete с указанием размера (sized deallocation)
Кому лень ходить по ссылке и кто верует в "Си быстрее плюсов" и "free() всегда быстрее сборщика мусора":
Modern memory allocators often allocate in size categories, and, for space efficiency reasons, do not store the size of the object near the object. Deallocation then requires searching for the size category store that contains the object. This search can be expensive, particularly as the search data structures are often not in memory caches.
| |
1.35, Аноним123 (?), 09:31, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>В режиме C++14 включена по умолчанию поддержка функции delete с указанием размера (sized deallocation),
Кто-нибудь понял зачем это надо?
| |
|
2.39, Аноним123 (?), 09:34, 18/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Сам спашиваю и сам отвечаю:
Modern memory allocators often allocate in size categories, and, for space efficiency reasons, do not store the size of the object near the object. Deallocation then requires searching for the size category store that contains the object. This search can be expensive, particularly as the search data structures are often not in memory caches.
| |
|
1.44, Аноним (43), 10:18, 18/09/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> тип char8_t для строк и символов в UTF-8.
Зачем вводить отдельное название для восьмибитного unsigned int?
| |
|
|
3.48, Аноним (-), 11:01, 18/09/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> char8_t
гарантировано unsigned.
А вот обычный char - как повезет.
Напр. в gcc он по умолчанию signed, но не на всех платформах (можно настраивать через -funsigned-char, -fsigned-char)
Так что это не "придумывают лишние абстракции", это приведение типа к однозначному поведению.
Потому что в стандарте не удосужились описать каким должен быть char.
> Gcc с поддержкой c23 ругается на тип.
Потому что у гыцыцы поддержка с23 омно.
Просто пользуйся нормальным компилятором. Например тем, что указан в заголовке новости.
И все будет работать.
| |
|
2.73, Аноним (-), 00:48, 19/09/2024 [^] [^^] [^^^] [ответить]
| +/– |
Потому что ты есть типы зависящие от платформы, а это независящий от платформы. Он будет работать одинаково на разных платформах.
| |
|
|