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关键字的主要内容,如果未能解决你的问题,请参考以下文章

typedef关键字

Linux C/C++关于结构体定义,typedef关键字的使用场景

C 语言数据类型本质 ( 数据类型别名 | typedef 关键字 | 为复杂数据类型设置别名 | 为简单数据类型设置别名 )

C++中typedef和typename关键字的使用

为啥 C 和 C++ 关键字“#defined”或“typedefed”也是它们的大写版本?

typedef有啥用?