LINUX.ORG.RU

История изменений

Исправление 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'ом или дырой безопасности. Код пишется в первую очередь для людей, а уже потом для компилятора.