All streams
Search
Write a publication
Pull to refresh
3
0
Send message
А вот что меняется от того является ли единица простым числом или нет? То есть какой практический толк от спора?
UFO landed and left these words here
Тут зависит от алгоритма шифрования. Если алгоритм основан на генерации случайных чисел и каждый код вносится в их базу данных, то нет. Когда пользователь вводит код, то система вычисляет контрольную сумму и таким образом отсекает большинство невалидных кодов. (тут ты можешь сам сгенерировать код с данной контрольной суммой, тем самым обойдя проверку) Если сумма совпала, то уже делается поиск по их бд (А вот тут ты ничего не сможешь сделать) и если такого кода нет в бд, то это повод для того, чтобы пристально за тобой начать следить, подозревая в мошенничестве.
Раньше си ошибочно низкоуровневым называли, теперь c#, ждём статью «низкоуровневый JavaScript»
memcpy тоже быстро копирует. В GCC вроде он не функция, а built-in
Наверное, стоит добавить, что когда матриц много, то очень часто имеет смысл сначала определить порядок умножения матриц.
У вас ошибка. strict alliasing позволяет кастовать к любому типу. Запрещено лишь разыменовывать указатель. Сам по себе cast к UB не приводит.
После того, как произошло UB компилятор может не делать «то что сказано».

Для UB достаточно чтения с 2 указателей разного типа. А откуда инфа, что только в пределах 1 функции?! Или это просто наблюдения нескольких компиляторов. Если второе, то всё плохо. Вон, люди memcpy для заполнения памяти последовательностью использовали. Везде работало, а потом раз и перестало. С UB шутки плохи, ибо оно проявляется неожиданно и может долгое время не давать о себе знать.

f и i не должны ссылаться на один и тот же блок памяти, ибо они имеют разный тип. volatile не убирает UB. А UB означает, что может произойти, что угодно.

Можете пояснить будет ли мой случай нарушать strict aliasing. Пишу абстрактный вектор на C11, чтобы можно было использовать [] структура вектора в памяти такая:
+------+----------+---------+
| size | capacity | data… |
+------+----------+---------+

Пользовательский указатель указывает на data. В ряде функций, связанных с этим вектором необходимо получить size. Для этого необходимо от переданного пользовательского указателя отнять 16 байт и считать/записать size_t. Будет ли нарушать правило strict aliasing следующий код?
((size_t *)(vec))[-2] = size;
12 ...
8

Information

Rating
Does not participate
Registered
Activity