我有一个结构定义为:
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)
我怎么能摆脱这个警告?
谢谢
我有一个AST(抽象语法树),现在我想测试我的编译器,给它2个或更多的数字,并期望输出与数学运算的结果(如计算器).
我的问题是,构建解释器的最佳方法是什么?访问AST节点是递归的,所以我不知道有多少封装计算存在,直到我到达树的末尾.但由于这是通过迭代迭代完成的,我怎样才能最终完成所有操作?
谢谢
如何初始化结构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;不起作用
在python中有一种方法可以将小数部分截断为5或7位数吗?
如果没有,我怎么能避免像e**( - x)这样的浮点数太大?
谢谢