本博客仅记录个人编程成长记录
C语言中typedef的用法,之前仅知道一个,就是起别名。
typedef unsigned int uint_32;
上面的例子就是给 unsigned int 起了另一个名字,叫uint_32。
在学习数据结构中,接触到了一些进阶用法。
typedef struct node{
int count;
struct node * pnext;
}*pnode;
单链表的一个结点就是如此定义的。
在学习ucos *** 作系统中接触到了以下语句。
typedef void (*OS_TASK_PTR)(void *p_arg);
看不明白,就去学习了typedef的另两种用法。
1.为数组定义简洁的类型名称
#include
typedef int a[100];
int main()
{
a x;
int i=0;
for(i=0;i<100;i++)
{
x[i]=i;
}
for(i=0;i<100;i++)
{
printf("%d\t",x[i]);
}
}
在上面的例子中,把int[100]这个数组类型定义重命名为 “a” ,下面调用的时候仅需 a x,就完成了int x[100]的定义。
这是程序执行后的结果
2.为指针定义简洁的名称
比如原函数是 void func(void);
那么定义的函数指针类型就是typedef void (*Fun)(void);
然后用此类型生成一个指向函数的指针: Fun func1;
当func1获取函数地址之后,那么你就可以向调用原函数那样来使用这个函数指针: func1(void);
参考:https://blog.csdn.net/weixin_42255385/article/details/82261774
http://c.biancheng.net/view/298.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)