这是我正在尝试做的事情:
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,我不关心可移植性到目前为止这很简单。无论如何,这是一项玩具任务。
答案 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>