C基础-typedef-1

it2025-04-11  20

typedef工具是一种高级数据特性,它使您能够为某一类型创建您自己的名字。

在这个方面,它和define相似,但是它们具有3个不同之处:

与#define不同,typedef 给出的符号名称仅限于对类型,而不是对值。typedef的解释由编译器,而不是预处理器执行。虽然它的范围有限,但在其受限范围内,typedef比#define更灵活。

优点:

typedef 有助于增加可移植性。 //不同平台,类型的定义可能不同为经常出现的类型创建一个方便的、可识别的名称。 //简单类型int ,结构体,联合体…typedef的名称经常被用于复杂的类型 //声明函数类型

使用场景:

给简单类型起别名 如BYTE, Uint16等给结构体,联合体起别名声明函数类型

当使用typedef时,要记住它并不是创建了新的类型,它只是创建了便于使用的标签。

例程:

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> /* 1. 给简单类型起别名 如BYTE,Uint16等 2. 给结构体,联合体起别名 3. 复杂的类型:声明函数类型 */ /*BYTE等这些定义,通常使用大写字母,以提醒用户这个类型名称实际上是一个符号缩写。不过也可以使用小写字母。*/ #define STRING1 char * typedef unsigned char BYTE; typedef char * STRING; typedef struct { double x; double y; }rect; typedef union { int x; char y[4]; }rect1; //FRPTC 声明为一个函数类型,该类型的函数返回一个指向含有5个元素的char数组的指针。 typedef char (*FRPTC())[5]; int main(void) { BYTE x,y,z; STRING name, sign; //char *name, char *sign. STRING1 name1,sign1; //char *name1, char sign1 #define 只是替换 rect r1; rect1 r2; puts("Bye."); return 0; }
最新回复(0)