Обычно лучше избегать неназванных «магических» чисел в коде, поскольку сопровождающему трудно понять, что должно означать это число. По этой причине рекомендуется называть ваши константы. По этой причине не делайте номер 1.
В C ++ лучше использовать static_cast, а не приведения в стиле C. Я уверен, что, возможно, есть другие вопросы о том, почему это так, но лучшая ссылка здесь - Мейерс (Effective C ++). По этой причине, предпочтите 3 над 2, но 3 все еще страдает от проблемы магического числа.
Лучше всего четыре, за исключением того, что имена переменных не имеют смысла, и может иметь смысл, если одна или обе переменные будут const
.
Я не уверен, есть ли какая-либо разница между ними с точки зрения скомпилированного кода, но это может быть связано с тем, что литерал интерпретируется как нечто отличное от uint16. Это может быть, например, uint32, хотя вы все равно должны получить ожидаемый результат.