小编Nit*_*ate的帖子

C struct to void*pointer

我有一个结构定义为:

typedef struct {
   int type;
   void* info;
} Data;
Run Code Online (Sandbox Code Playgroud)

然后我有几个其他结构,我想使用以下函数分配给void*:

Data* insert_data(int t, void* s)
{
    Data * d = (Data*)malloc(sizeof(Data));
    d->type = t;
    d->info = s;

    return d;
}

struct {
   ...
} Struct#;
Run Code Online (Sandbox Code Playgroud)

那我就叫

insert_data(1, variable_of_type_Struct#);
Run Code Online (Sandbox Code Playgroud)

当我编译它时会发出警告

warning: assignment from incompatible pointer type
Run Code Online (Sandbox Code Playgroud)

我试图将插入中的变量强制转换为(void*)但不起作用

insert_data(1, (void *) variable_of_type_Struct#);
Run Code Online (Sandbox Code Playgroud)

我怎么能摆脱这个警告?

谢谢

c structure void-pointers

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

AST翻译?

我有一个AST(抽象语法树),现在我想测试我的编译器,给它2个或更多的数字,并期望输出与数学运算的结果(如计算器).

我的问题是,构建解释器的最佳方法是什么?访问AST节点是递归的,所以我不知道有多少封装计算存在,直到我到达树的末尾.但由于这是通过迭代迭代完成的,我怎样才能最终完成所有操作?

谢谢

interpreter abstract-syntax-tree

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

C struct内部结构内部结构

如何初始化结构B或C的变量?

typedef struct _A
{
  union
  {
    struct
    {
      int b;
    } B;
    struct
    {
      int c;
    } C;
  } u;
} A;
Run Code Online (Sandbox Code Playgroud)

有点像 A.u.B *bVar;不起作用

c struct unions

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

python e**( - x)溢出错误:(34,'结果太大')

在python中有一种方法可以将小数部分截断为5或7位数吗?

如果没有,我怎么能避免像e**( - x)这样的浮点数太大?

谢谢

python

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