一、引子:几行代码
为了不浪费时间,先来看看如下三行代码:
typedef int arr[10];
typedef void (*pf)();
typedef int* (*pf)(int* (p*)(int*, int*), int*);
如果能准确知道上面三行代码的意义,我想就没有必要继续往下看了,当然,为了温习也可以快速阅读。
二、定义 struct 时 typeder 的含义
1. 在 C 中定义一个结构体类型需要用 typedef 关键字:
typedef struct TestS
{
int a;
}Test;
于是在声明变量时就可以这样:Test test; 如果没有 typedef 就必须用 struct TestS test; 来声明,这里的 Test 实际上就是 struct TestS 的别名,即 Test == struct TestS。
另外,这里也可以不写 TestS,也就不能 struct TestS test; 了,必须是 Test test;,如下:
typedef struct
{
int a;
}Test;
2. 在 C++ 中定义一个结构体类型不再需要用 typedef 关键字:
在 C++ 里定义一个结构体类型就很简单直接了:
struct TestS
{
int a;
};
这样就定义了结构体类型 TestS ,声明变量时直接 TestS test; 即可。