[英]Bitwise OR for int64_t not defined?
这是我想做的事情:
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位长整数进行比特运算? 如果需要特定于GCC,到目前为止,我并不在乎可移植性。 无论如何,这是一个玩具任务。
h_out [0]是一个指向int64_t
的指针,而不是一个int64_t
它是为int64_t
定义的,但没有为int64_t*
(指针)定义的。
h_out
是一个指向int64_t
的指针的数组,因此h_out[0]
和h_out[1]
的类型为int64_t *
:不是整数类型,而是一个指针。 也许您的意思是声明为
int64_t h_out[ARRAY_SIZE];
代替?
你包括了吗
#include <stdint.h>
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.