我有一些代码。对于编译,我使用 gcc 编译器。
union uStackElement {
int i;
double d;
}
typedef union uStackElement StackElement;
...
StackElement stack_pop(Stack s);
...
StackElement a = stack_pop(Stack s); // error: incompatible types in assignment
...
我不明白出了什么问题。:(
UPD:堆栈定义:
struct sStack
{
int top ;
StackElement array[STACK_SIZE];
};
typedef struct sStack Stack;
函数 stack_pop :
StackElement stack_pop(Stack s) {
StackElement ret;
if (s.top < 0) {
// TODO : error
}
ret = s.array[s.top--];
return ret;
}