typedef的使用方法
typedef 将一个 变量声明 中的 标识符(名字) 部分,提取出来,作为该标识符 原本所代表的数据类型 的别名。(-----来自deepseek)
例子
基础例子:
struct LinklistNode LNode = {...}; // 声明并定义一个LNode变量
typedef struct LinklistNode LNode; // 创建一个名为LNode的类型描述符,代表struct LinklistNode
LNode* pNode; // 声明一个指向struct LinklistNode的指针
tyoedef LNode* pLNode; // 创建一个pLNode的类型描述符,代表LNode*
区分例子:函数声明和变量声明哪一个可以用在typedef后面
void function(int); // 正确,是一个函数声明,不是变量声明
typedef void function(int); // 错误,函数声明不能当作typedef的参数
// -----------------------------------
void (*function)(int); // 正确,声明了function是一个指向返回值为void,参数为int的指针变量。
typedef void (*function)(int)l // 正确,变量名function被当作void (*)(int)类型的别名,
function test(param); // 正确,使用function类型描述符,声明了一个名为test的函数,返回值类型为function,参数为param
// -----------------------------------
void (*signal(int sig, void (*func)(int)))(int); // 正确,是一个函数声明,不是变量声明
typedef void (*signal(int sig, void (*func)(int)))(int); // 错误,函数声明不能当作typedef的参数
浙公网安备 33010602011771号