typedef struct {
long long int mem_0;
} Tuple1;
typedef struct {
int tag;
union {
struct Tuple1 Union0Case0;
} data;
} Union0;
C:/ Users / Marko / Documents / Visual Studio 2015 / Projects / Multi-armed Bandit Experiments / SpiralExample / bin / Release / cuda_kernels.cu(10):错误:不允许不完整类型
以上确实在GCC 5.3.0编译器上编译。当我将其更改为此时,它可以工作:
struct Tuple1 {
long long int mem_0;
};
struct Union0 {
int tag;
union {
struct Tuple1 Union0Case0;
} data;
};
答案 0 :(得分:2)
将注释汇总到答案中,以便此问题脱离CUDA标记的未答复队列。
此:
typedef struct {
long long int mem_0;
} Tuple1;
定义包含未命名结构的类型。 struct Tuple1
没有定义。
另一方面,这定义了这样一种结构:
struct Tuple1 {
long long int mem_0;
};
,这定义了一个包含这种命名结构的类型:
typedef struct Tuple1 {
long long int mem_0;
} Tuple1_t;
后两者中的任何一个都与您的其他代码兼容。