gcc编译c程序出错,一个简单的结构体指针定义,各位大神看下是哪里有问题啊

时间:2022-11-19 10:44:37
typedef struct {
int version;        
int width;         
unsigned char *data; 
} QRcode;
typedef struct _QRcode_List QRcode_List;
struct _QRcode_List {
QRcode *code;  
QRcode_List *next;
};

这是纯c语言的qrencode库程序,用于生成二维码的,在vs2013下顺利执行,但是用gcc编译出错,提示“QRcode *code; ”这句存在错误,注释掉这句就顺利执行了,到底是什么问题啊,是不是c语言下不能这样写啊

3 个解决方案

#1


typedef struct {
int version;        
int width;         
unsigned char *data; 
} QRcode;

这儿是不是应该定义下名字呢,直接定义别名,那么别名也应该是谁的名字。

试一下这样是否可行:
typedef struct recode {
int version;        
int width;         
unsigned char *data; 
} QRcode;

#2


代码没问题,错误内容是什么

#3


最终也没搞清楚是哪里的问题,把指针的定义移到结构体外面就没报错了

#1


typedef struct {
int version;        
int width;         
unsigned char *data; 
} QRcode;

这儿是不是应该定义下名字呢,直接定义别名,那么别名也应该是谁的名字。

试一下这样是否可行:
typedef struct recode {
int version;        
int width;         
unsigned char *data; 
} QRcode;

#2


代码没问题,错误内容是什么

#3


最终也没搞清楚是哪里的问题,把指针的定义移到结构体外面就没报错了