即使通过 typedef 将 struct node 定义为 list,在后续的使用中,仍然可以再次使用 struct node。从而可以造成一些奇怪的报错。
#include <iostream>
#include <stack>
using namespace std;
typedef struct node {
int data;
struct node* next;
node(int x): data(x), next(NULL) { }
} list;
int main()
{
list ls(1000);
struct node no(300);
cout << ls.data << endl;
cout << no.data << endl;
}
// 输出结果
// 1000
// 300