C语言——typedef
作用
为一种类型引入新名字,但是不分配空间
struct
比较合规的用法:
struct TAG
	{
	  int a;
	}
	struct TAG veg;
如果使用typedef,可以省略声明过程中的struct,但是这个关键字具有提示作用,没有必要省略
typedef struct TAG	//TAG可以省略
	{
	  int a;
	}TYPE;
	TYPE veg;
使用场景
typedef一般用于简洁地表示指向其他东西的指针;
#include <stdio.h>
/*
本测试用例用于说明typedef的优势
功能:选择加减操作符,执行对面操作
说明:首先根据操作符选择对应的函数指针,通过typedef定义的函数指针,带上参数,得到二目运算结果
*/
typedef int (*PFun)(int, int);	//函数指针,形参为两个int,返回值为int
int add(int a, int b)
{
	return a + b;
}
int min(int a, int b)
{
	return a - b;
}
PFun cal_func(char ops)		//返回值为函数指针
{
	switch (ops)
	{
	case '+':
		return add;
		break;
	case '-':
		return min;
		break;
	}
	return NULL;
}
int main_typedef(int a,int b,char ops)
{
	PFun pFun = cal_func(ops);
	int r = pFun(a, b);
	printf("result :%d %c %d = %d  \n", a, ops, b, r);
	return 0;
}
结果:![[Pasted image 82.png]]
思考:当case变多时,维护起来就会麻烦,使用[[03. 转移表]]]可以解决。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号