C++ typedef struct 引起的expected unqualified-id before...错误
来源:互联网 发布:社区控烟网络会议记录 编辑:程序博客网 时间:2024/06/05 06:48
环境ubuntu 14.04
自己写的一个C++小程序,在定义结构体的时候,使用了typedef struct structName{...};结果一直提示expected unqualified-id before错误,就是在对structName里面的成员进行赋值的时候提示的这个错误。在C++中说的很清楚,定义结构体的时候typedef 可有可无。所以为了跟c编码一致,我就加了typedef,然后就抛了这样的错误。不理解。。。
然后后来仔细查了一下,发现当初学的C/C++都忘光了。我的结构体定义如下
typedef struct stack{
typedef struct link{
void * data;
link* next;
void initialize(void * data, link * next);
} * head;
void initialize();
void push(void * data);
void * peek();
void * pop();
void cleanup();
};
查阅了一些资料首先说一下自己写的代码的错误地方。
typedef struct stack{
....
};
在C++中相当于先定义struct stack{};然后使用typedef struct stack stackAnotherName;给原来的Struct stack 定义了一个别名叫做 stackAnotherName。而我的程序中在结束的时候,并没有给Struct stack起一个别名,相当于写了一行这样的代码typedef struct stack;,所以这个地方是错误的。
在这个地方
typedef struct link{
void * data;
link* next;
void initialize(void * data, link * next);
} * head;
其实就像是相当于定义了一个link 的数据结构,然后使用typedef struct link * head;也就是给struct link * 起了一个别名叫做head,因而在我每次引用成员变量head的时候都会提示expected unqualified-id before....。
正确的代码应该是这样,这里面的head就是我定义的成员变量。就没有问题了。
typedef struct stack{
struct link{
void * data;
link* next;
void initialize(void * data, link * next);
} * head;
void initialize();
void push(void * data);
void * peek();
void * pop();
void cleanup();
}Stack;
- C++ typedef struct 引起的expected unqualified-id before...错误
- error: expected unqualified-id before '-' 错误
- 错误:expected unqualified-id before ‘using’
- g++ 错误:expected unqualified-id before ‘using’
- 错误expected unqualified-id before string constant
- 错误expected unqualified-id before string constant
- 错误:expected unqualified-id before ‘template’
- expected unqualified-id before ‘using’ 错误
- expected unqualified-id before ....的问题
- expected unqualified-id before ‘using’
- expected unqualified-id before 'int'
- expected unqualified-id before using
- expected unqualified-id before '(' token
- HandlerThread.cpp:23: 错误:expected unqualified-id before ‘using’
- g++编译错误:expected unqualified-id before ‘using’
- g++ 编译头class的文件 出现expected unqualified-id before ‘namespace’错误的原因
- iOS的诡异错误 expected unqualified-id
- linux下编译复数类型引发的错误:expected unqualified-id before '(' token
- 对图片进行等比例缩小
- C语言学习笔记(六)——文件操作
- python Flask-SQLAlchemy 连接数据库
- Easyui Datagrid 表头和表体列对照异常
- 分享一个sqlsever DBA的blog,东西挺全面
- C++ typedef struct 引起的expected unqualified-id before...错误
- 感知器算法
- 关于Influxdb
- leetcode 69
- 第一篇文章献给艰难的Ubuntu16.04安装caffe之旅 cuda tensorflow Theano
- 快速理解数字签名(digital signature)和证书中心(certificate authority)
- UCOS-II任务间通信:邮箱
- 以太坊学习之常用命令
- 机器学习入门算法及其java实现-EM(Expectation Maxium)算法