【问题标题】:syntax error in CC中的语法错误
【发布时间】:2009-12-22 13:32:31
【问题描述】:

我正在尝试构建一个我收到此错误消息的块

pprbc_CONTENT_icverification_act.c", line 99.2: 1506-018 (S) Operand of indirection operator must be a pointer expression

谁能解释一下这是什么意思?

代码如下:

   *(WORK_migration_ind_f) =
   *(migration_status_in_MI9_CIRCLE_INFO(WORK_source_circle_f));

【问题讨论】:

  • 您是否有机会显示生成错误消息的代码?因为,就其本身而言,错误消息表明您可能正在尝试取消引用文字对象或原始类型 - 而实际上您只能引用指针。即您不能声明 int myval 然后尝试 myval->something 因为 myval 不是指针..
  • 其实它可能是一个结构。我敢打赌你声明了struct mystruct { int something; },然后尝试了struct mystruct myobj,然后是myobj->something,你的意思是myobj.something,对吧?
  • 感谢您使用导致错误的代码更新您的帖子。现在,你能猜到我们现在想知道什么吗?你可以吗?你可以吗?噢..你让我失望了,下一个问题是什么很明显???是的..我们想知道WORK_source_circle_fWORK_migration_ind_f的类型..你不想知道吗?你难道一点都不好奇为什么你的编译器认为你没有使用指针吗?我很好奇,我希望你也很好奇!饿了!渴望获得这些知识!当你渴望真相时,编程很有趣:)
  • 让我们知道migration_status_in_MI9_CIRCLE_INFO的原型是什么——也许它没有返回一个指针..如果你很难找到定义,值得看看grep工具.
  • .. 任何在场的律师都应该引用我来纠缠证人..

标签: c unix


【解决方案1】:

是的,你在不是指针的东西前面放了一个“*”。

如果您发布所涉及的代码行,您将为您自己和每个人带来帮助。

【讨论】:

  • 解决了。函数migration_status_in_MI9_CIRCLE_INFO(WORK_source_circle_f)返回一个字符指针。但是该头文件应该包含在缺少的应用程序核心的深处。因此,由于不包含标头,编译器假设该函数将返回一个 inetger,从而导致上述错误。非常感谢您的所有建议:)
【解决方案2】:

大概你有这样的代码:

int x;

*x;    // apply indirection to non-poiner

但是如果没有看到导致错误消息的实际代码,就不可能说出来。

【讨论】:

    【解决方案3】:

    *(间接)运算符取消引用一个指针;也就是说,它将指针值转换为左值。间接运算符的操作数必须是指向类型的指针。

    【讨论】:

      【解决方案4】:

      变量WORK_migration_ind_f 或函数migration_status_in_MI9_CIRCLE_INFO 的返回类型(或两者)都不是指针类型。您只能取消引用一个指针。

      如果你有这样的代码:

      int *pi;
      int i;
      int f(void);
      int *pf(void);
      

      那么,下面的“有道理”:

      *pi /* is of type int */
      *pf() /* is of type int */
      

      以下不是:

      *i /* can't dereference a non-pointer */
      *f() /* can't dereference a non-pointer */
      

      如果您向我们展示WORK_migration_ind_fWORK_migration_ind_f 的声明,我们可以告诉您更多信息,但我认为您现在应该能够自己找出错误了。

      【讨论】:

        猜你喜欢
        • 2017-12-25
        • 2015-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多