0

这是我正在尝试做的事情:

int64_t* h_out[ARRAY_SIZE];
int64_t result;
// some manipulations on h_out...
result = h_out[0] | h_out[1];

最后一行给出了这个错误:

error: expression must have integral or enum type

我不确定我是否理解错误想说什么,但我猜它没有|int64_t. %在谷歌搜索这个错误时,会出现几个类似的问题,其中许多问题都涉及操作符未定义的事实int64_t

那么...我如何对两个 64 位长整数进行 bitor 处理?如果它需要特定于 GCC,我不关心可移植性,到目前为止它很简单。无论如何,这是一个玩具任务。

4

4 回答 4

3

h_out[0] 是指向int64_tint64_t

于 2013-03-29T16:29:32.650 回答
2

它是为 定义的int64_t,但不是为int64_t*(指针)定义的。

于 2013-03-29T16:29:52.260 回答
1

h_out is an array of pointers to int64_t, so h_out[0] and h_out[1] have the type int64_t *: not an integral type, but a pointer. Perhaps you meant declaring it as

int64_t h_out[ARRAY_SIZE];

instead?

于 2013-03-29T16:30:13.360 回答
0

你包括了吗

#include <stdint.h>

?

于 2013-03-29T16:28:03.973 回答