【问题标题】:What am I supposed to be returning to avoid error: expected identifier or ‘(’ before ‘seg’?我应该返回什么以避免错误:预期的标识符或“seg”之前的“(”?
【发布时间】:2015-09-20 00:43:40
【问题描述】:

所以在我的代码中,seg 是我在头文件中创建的结构的 typedef 名称。函数的标题是正确的——已经给出了——但我不确定我是否遵循所需的返回类型,即 *seg (或 struct seg 指针)。 我得到了错误:避免错误:预期的标识符或“seg”之前的“(”?我无法弄清楚。如果有人可以指导我,谢谢。感谢您的时间和帮助。

*seg  whichseg(int j){
    int seg_node_num = (int)ceil(j/(float)BITS_PER_SEG);
    int i = 1;
    seg *seg_node;
    seg_node = (seg*)malloc(sizeOf(seg));
    for(seg_node = head; i <= seg_node_num; seg_node = seg_node.next)
    {
        i++;
    }
    return seg_node; }

这是头文件抱歉没有放早 '

    typedef struct _seg {  /* definition of new type "seg" */
        int  bits[256];
        struct _seg  *next,*prev;        
          }seg  ;

    EXTERN int NSegs;

    EXTERN seg *head; 

【问题讨论】:

标签: c struct return


【解决方案1】:

问题是* 跟在类型名称之后,seg* 是一个类型,而*seg 是不同的东西。

实际上*seg 表示“取消引用名为seg 的变量”,而* 在这种情况下将用作一元运算符。你的情况不是这样。

【讨论】:

  • 当我这样做时,我得到错误:'seg'之前的预期表达式。
  • 试试这个struct seg *whichseg(int j)。如果可行,请下次发布其余代码,例如结构定义以及是否存在typedef
  • 它是这样给的:
  • ' typedef struct _seg { /* 新类型“seg”的定义 */ int bits[256];结构 _seg *next,*prev; }seg ;'
  • 请在seg *whichseg(int j)之前发布代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多