这根本就错了,没有办法,或者我必须在其他方面做到这一点?
例如:
typedef void (*UserFunc)(Test *tx);
typedef struct{
int a;
char b;
UserFunc func;
} Test;
我收到此错误:
c.c:5:26: error: unknown type name ‘Test’
typedef void (*UserFunc)(Test *tx);
^~~~
c.c:10:1: error: unknown type name ‘UserFunc’
UserFunc func;
^~~~~~~~
当我向下移动函数typedef时:
typedef struct{
int a;
char b;
UserFunc func;
} Test;
typedef void (*UserFunc)(Test *tx);
我明白了:
c.c:8:1: error: unknown type name ‘UserFunc’
UserFunc func;
^~~~~~~~
答案 0 :(得分:1)
您必须先声明测试,然后再定义:
typedef struct Test Test;
typedef void (*UserFunc)(Test *tx);
typedef struct Test {
int a;
char b;
UserFunc func;
} Test;