假设这是针对32位应用程序的.我有两个ID值,它们一起唯一地标识特定对象.每个ID都是一个普通的32位int,因此为了识别任何特定的对象,我需要将两个ID值保持在一起.
想到的第一个解决方案是将它们存储为两个单独的值,并在结构中传递它们:
struct {
int id1;
int id2;
};
Run Code Online (Sandbox Code Playgroud)
但是,如果我可以将它们作为单个值而不是结构对传递它,那将是很好的,就像我在仅存在一个32位ID值时所做的那样.
所以,另一个想法是将它们存储为uint64_t的上半部分和下半部分.
我的问题是,两种方法之间有什么真正的区别吗?无论哪种方式,传递相同数量的字节,但我不知道int64是否有任何特殊开销,因为CPU本身不处理64位值.