【发布时间】:2014-12-19 13:12:51
【问题描述】:
我有两个 16 字节的 char 数组:
char word[WORD_LENGTH] = { '1', '2', '3', '4', '5', '6','7','8','9','0','1','2','3','4','5','\0'};
char word2[WORD_LENGTH] = { '1', '2', '3', '4', '5', '6','7','8','9','0','1','2','3','4','5','\0'};
我正在寻找一种比逐个字符比较更快地比较两个字符数组的方法。据我所知,我认为我可以使用类型转换将 char 数组转换为 128 int;像这样
__int128 value = (__int128) word;
__int128 value2 = (__int128) word2;
但是这些都不行,因为 value 和 value2 包含 word 和 word2 的地址。
如何将 char 数组转换为 __int128?
【问题讨论】:
-
使用指针或联合,但仍然会有字节序问题
-
C 还是 C++?你知道它们是不同的语言,对吧?
-
但是位的顺序无关紧要,我只想检查这两个单词是否相同。
-
你试过
memcmp吗? -
@SHR 我认为类型转换比 memcmp 更快,因为是直接的。