typedef关键字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typedef关键字相关的知识,希望对你有一定的参考价值。
1. typedef的作用
在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、static、register等关键字不能出现在同一个表达式中。
2. typedef关键字和#define宏定义指令的区别
#define属于预编译指令,在预编译阶段会进行单纯的文本替换,并不会进行类型检查。如有宏定义#define A B,则在预编译阶段,在宏A的作用域内,所有A出现的地方会被替换成B,然后再进入编译阶段。#define的用法有些复杂,具体以后讨论。typedef则会在编译阶段起作用,编译器会进行类型检查。
3. 如何理解复杂的typedef声明
typedef的作用是为已知类型声明一个别名。以typedef void (*handler)(int)为例,将一个指向返回void值的函数的指针起一个叫做handler的别名。typedef的本质是一个声明,规则和普通变量声明是一样的。具体请参考本人上一篇随笔:http://www.cnblogs.com/deyuanqin/p/5755039.html
以上是关于typedef关键字的主要内容,如果未能解决你的问题,请参考以下文章
Linux C/C++关于结构体定义,typedef关键字的使用场景
C 语言数据类型本质 ( 数据类型别名 | typedef 关键字 | 为复杂数据类型设置别名 | 为简单数据类型设置别名 )