int64_t的按位OR未定义?

时间:2013-03-29 16:26:44

标签: c++ 64-bit bit-manipulation

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

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运算符。在使用Google搜索此错误时,会出现几个类似的问题,其中许多问题都涉及%运算符未定义为int64_t的事实。

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

4 个答案:

答案 0 :(得分:3)

h_out [0]是指向int64_t而不是int64_t

的指针

答案 1 :(得分:2)

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

答案 2 :(得分:1)

h_out是指向int64_t的指针数组,因此h_out[0]h_out[1]的类型为int64_t *:不是整数类型,而是指针。也许你的意思是宣布它为

int64_t h_out[ARRAY_SIZE];

代替?

答案 3 :(得分:0)

你是否包括

#include <stdint.h>