История изменений
Исправление KennyMinigun, (текущая версия) :
умный компилятор сам разрулит в оптимальный код
для этого компилятор должен откуда-то знать, что число до конвертации в uint8_t уже влезало в байт
Оно то так, но можно сгенерировать, например, такой код:
; stdcall
push ebp
call strtoul
and eax, 0xFF
add esp, eax ; или add sp, ax
Впрочем, это не так важно пока вот этот код с кастованием size_t -> unit8_t -> size_t не является bottleneck'ом или дырой безопасности. Код пишется в первую очередь для людей, а уже потом для компилятора.
Исправление KennyMinigun, :
умный компилятор сам разрулит в оптимальный код
для этого компилятор должен откуда-то знать, что число до конвертации в uint8_t уже влезало в байт
а что, надо конвертить в uint8_t и обратно? Оно то так, но можно сгенерировать, например, такой код:
; stdcall
push ebp
call strtoul
and eax, 0xFF
add esp, eax ; или add sp, ax
Впрочем, это не так важно пока вот этот код с кастованием size_t -> unit8_t -> size_t не является bottleneck'ом или дырой безопасности. Код пишется в первую очередь для людей, а уже потом для компилятора.
Исходная версия KennyMinigun, :
умный компилятор сам разрулит в оптимальный код
для этого компилятор должен откуда-то знать, что число до конвертации в uint8_t уже влезало в байт
а что, надо конвертить в uint8_t и обратно? Оно то так, но можно сгенерировать, например, такой код:
; stdcall
push [ebp]
call strtoul
and eax, 0xFF
add esp, eax ; или add sp, ax
Впрочем, это не так важно пока вот этот код с кастованием size_t -> unit8_t -> size_t не является bottleneck'ом или дырой безопасности. Код пишется в первую очередь для людей, а уже потом для компилятора.