相关疑难解决方法(0)

自引用结构定义?

我没有写C很长时间,所以我不确定我应该怎么做这些递归的东西...我希望每个单元格包含另一个单元格,但我得到一个错误沿着"田地'孩子'的行具有不完整的类型".这是怎么回事?

typedef struct Cell {
  int isParent;
  Cell child;
} Cell;
Run Code Online (Sandbox Code Playgroud)

c recursion struct typedef

126
推荐指数
6
解决办法
10万
查看次数

双下划线(__const)在C中意味着什么?

extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 __THROW;
Run Code Online (Sandbox Code Playgroud)

我在Linux机器上的/usr/include/netinet/ether.h中找到了上面的函数定义.

有人可以在const(关键字),addr(标识符)和最后__THROW前面解释双下划线的含义.

c syntax double-underscore

48
推荐指数
2
解决办法
4万
查看次数

指向自我的C结构

是否可以定义一个带有指向该类型结构的指针的结构?我的意思是:

typedef struct {
    char* name;
    node* parent;
} node;
Run Code Online (Sandbox Code Playgroud)

就我尝试或阅读而言,我不知道该怎么做或者甚至可能.

c struct

6
推荐指数
2
解决办法
7058
查看次数

结构可以有一个成员,它是指向同一类型结构的指针吗?

听起来很复杂,但这是一个简单的概念.假设你有一些结构"foo",如果它的成员是指向另一个foo结构的指针(如链表)

这似乎有效.

struct foo {
   struct foo* ptr;
};
Run Code Online (Sandbox Code Playgroud)

但是,如果我想让foo成为一个类型呢?

就像我将如何做以下几点?

typedef struct foo {
   foo* ptr;
} foo;
Run Code Online (Sandbox Code Playgroud)

ptr的声明失败,因为foo还不是限定符.

c struct pointers qualifiers

2
推荐指数
1
解决办法
128
查看次数

C中的自引用结构

我想声明一个自引用结构,如下所示

    typedef struct
    {
            entry_t *entry;
            node_t *next;
    }node_t;
Run Code Online (Sandbox Code Playgroud)

而不是链接列表的下面

  struct node
  {
         entry_t *entry;
         struct node *next;
  }*head;
Run Code Online (Sandbox Code Playgroud)

这在C中有用吗?如果不是为什么不呢?

c pointers linked-list data-structures

1
推荐指数
1
解决办法
7484
查看次数

C递归typedef结构

#include <stdio.h>
#include <stdlib.h>

#define MAX_ELEMENT 100

typedef struct TreeNode{
    int weight;
    TreeNode *left_child;
    TreeNode *right_child;
} TreeNode;

typedef struct element{
    TreeNode *ptree;
    int key;
} element;

typedef struct HeapType{
    element heap[MAX_ELEMENT];
    int heap_size;
} HeapType;
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

error: unknown type name ‘TreeNode’
     TreeNode *left_child;
error: unknown type name ‘TreeNode’
     TreeNode *right_child;
Run Code Online (Sandbox Code Playgroud)

我不明白为什么……你能解释一下吗?

c

1
推荐指数
1
解决办法
126
查看次数