假设这是用于32位应用程序。我有两个ID值一起唯一标识一个特定的对象。每个ID是一个普通的32位int,所以为了识别任何特定的对象,我需要将两个ID值保持在一起。结构与int64值
,想到的第一个解决方案是将它们作为两个独立的价值观,并在结构通过他们周围:
struct {
int id1;
int id2;
};
然而,这将是很好,如果我可以通过他们周围的单值而不是结构对,正如我仅在一个32位ID值时所做的那样。
所以,另一个想法是将它们存储为uint64_t的上下两半。
我的问题是,这两种方法之间有没有真正的区别?无论哪种方式,传递相同数量的字节,但我不知道是否有任何特殊的开销int64,因为CPU本身不处理64位值。
“*想到第一个解决方案... *”解决什么问题? – ildjarn
struct *是一个单一的值。正如你所说,你必须通过任何方式传递8个字节。 –
@ildjarn可能要传递两个ID,我想这是问题的其余部分所暗示的。 –