Предположим, что это для 32-разрядного приложения. У меня есть два значения ID, которые вместе однозначно идентифицируют конкретный объект. Каждый идентификатор представляет собой простой 32-битный int, поэтому, чтобы идентифицировать какой-либо конкретный объект, мне нужно сохранить оба идентификатора.Struct vs int64 value
Первое решение, которое приходит на ум, чтобы хранить их в виде двух отдельных значений, и передать их вокруг в структуры:
struct {
int id1;
int id2;
};
Однако, было бы хорошо, если бы я мог передать их вокруг, как единственное значение, а не пара структур, как я это сделал, когда было только одно 32-битное значение ID.
Итак, другая идея состоит в том, чтобы хранить их как верхнюю и нижнюю половинки uint64_t.
Мой вопрос в том, есть ли реальная разница между двумя методами? В любом случае, такое же количество байтов передается, но я не знаю, есть ли какие-либо специальные накладные расходы для int64, поскольку процессор не выполняет обработку 64-битных значений.
«Первое решение, которое приходит на ум ... *« Решение какой проблемы? – ildjarn
Структура * - это одно значение. Как вы говорите, вам нужно пройти 8 байтов в любом случае. –
@ildjarn Вероятно, чтобы пройти два идентификатора вокруг, я предполагаю, что это вытекает из остальной части вопроса. –