“一元'*'的无效类型参数

时间:2013-12-24 14:11:02

标签: c unions

我对编程比较陌生,即使经过深入研究,我也无法解决这个问题。

我想检查是否通过一个对象[定义为变量类型union]我可以与用户为输入对象输入的新对象进行比较是否在此特定集合中,但总是两个错误弹出: “一元'*'的无效类型参数(有'对象')”

bool is_element_of(Object items, SET*S)
{
  LIST*scan = *S;
  int p = 0;
  while (S != NULL)
  {
    if (*scan->item == items)
      p = 1;
    scan = scan->next;
  }
  if (p == 1)
    return true;
  else
    return false;
}

这是结构定义以及对象的并集:

typedef struct object
{
  union
  {
    char c;
    char t[OSIZE];
    unsigned long int h[OSIZE];
    unsigned int i;
    float f;
    long double j[OSIZE];
    int type;
  } TYPE;
} Object;

typedef struct list1
{
  Object item;
  struct list1*next;
} LIST;

typedef LIST*SET;

1 个答案:

答案 0 :(得分:2)

if (*scan->item == items)

scan->item是一个Object,而不是指针。所以你不能取消引用它。