繁体   English   中英

未定义int64_t的按位OR?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM