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ます。

では... 2 つの 64 ビット long 整数を bitor するにはどうすればよいでしょうか? それが GCC 固有のものである必要がある場合、単純なので移植性は気にしません。とにかくこれはおもちゃの仕事です。

4

4 に答える 4

3

h_out[0] はポインタではint64_tありませんint64_t

于 2013-03-29T16:29:32.650 に答える
2

に対して定義されていますが、 (ポインター)に対しては定義されてint64_tいません。int64_t*

于 2013-03-29T16:29:52.260 に答える
1

h_outは へのポインタの配列であるint64_tためh_out[0]、 とh_out[1]の型はint64_t *: 整数型ではなくポインタです。おそらく、あなたはそれを次のように宣言することを意味しました

int64_t h_out[ARRAY_SIZE];

代わりは?

于 2013-03-29T16:30:13.360 に答える
0

含めましたか

#include <stdint.h>

?

于 2013-03-29T16:28:03.973 に答える