0

我收到错误消息 Error: Illegal implicit conversion from '@enum$1main_c**' to '@enum$1main_c*'

//example.h
typedef enum {eg_1, eg_2} valType;


//main.c
#include "example.h"
void main(void)
{
 valType *testVal;
while(1)
 {
 read(x,y,*testval);
 }
}

你能告诉我我做错了什么吗?提前致谢

4

3 回答 3

0

如果这是readfrom unistd.h,它的最后一个参数必须是 a size_t,而不是 a valType

于 2013-01-07T11:57:53.777 回答
0

你能发布read()函数的源代码吗?可能它testVal作为一个指针,但你作为一个值传递。

于 2013-01-07T12:01:31.320 回答
0

没有任何进一步的信息,我可以说 testVal 有一个未定义的值,它是一个未初始化的指针。我假设read 会尝试在 testVal 中放入一些东西,所以现在,将您的代码更改为:

//example.h
typedef enum {eg_1, eg_2} valType;


//main.c
#include "example.h"
void main(void)
{
 valType testVal;
while(1)
 {
 read(x,y, &testval);
 }
}

让我们知道进展如何。

于 2013-01-07T13:17:01.003 回答