C语言 typedef的用法示例详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C语言?typedef的用法示例详解

目录一、什么是typedef二、typedef用法1、对于数据类型使用例如:2、对于指针的使用例如3、对于结构体的使用三、进阶typedef1、数组指针2、指针函数3、Int*(*array[3])(int);4、Void(*funA(int,void(*funB)(int)))(int);四、Typedef与define

一、什么是typedef

typedef是在C和C++编程语言中的一个关键字。作用是为现有的数据类型(int、float、char)创建一个新的名字,目的是为了使代码方便阅读和理解。

二、typedef用法

1、对于数据类型使用例如:

typedef?int??NEW_INT;

以上就是给int起了一个新的名字NEW_INT,注意要加分号。当要定义int类型数据时就可以:

NEW_INTnum;

此时NEW_INTnum等同于intnum。

2、对于指针的使用例如

typedef?int??*PTRINT;

以上就是给int*起了一个新的名字NEW_INT。可定义int类型指针变量如:

PTRINTx;

此时PTRINTx等同于int*x。

例:

3、对于结构体的使用

在声明结构体时可为结构体和结构体指针起别名,如:

typedefstructNUM

inta;

intb;

}DATA,*PTRDATA;

此时DATA等同于structNUM,*PTRDATA等同于structNUM*。

定义结构体变量及指针可简化为:

DATAdata;//定义结构体变量

PTRDATApdata;//定义结构体指针

举个例子:

#includestdio.h

typedefstructNUM

inta;

intb;

}DATA,*PTRDATA;

intmain()

DATAdata;//定义结构体变量

PTRDATApdata;//定义结构体指针

pdata=data;//结构体指针指向结构体变量

data.a=100;

data.b=500;

printf(a=%d\nb=%d\n,data.a,data.b);

printf(a=%d\nb=%d\n,pdata-a,pdata-

return0;

}

运行结果:

三、进阶typedef

1、数组指针

int(*ptr)[3];

使用Typedef:

typedefint(*PTR_TO_ARRAY)[3];

例:

#includestdio.h

typedefint(*PTR_TO_ARRAY)[3];

intmain()

IntI;

Inttemp[3]={1,2,3};

PTR_TO_ARRAYptr_to_array;

ptr_to_array=temp;

for(i+0;ii++)

printf(%d\n,(*ptr_to_array)[i]);

return0;

}

2、指针函数

int(*fun)(void);

使用Typedef:

typedefint(*PTR_TO_FUN)(void);

3、Int*(*array[3])(int);

int*(*array[3])(int);

使用Typedef:

typedefint*(*PTR_TO_FUN)(int);

PTR_TO_FUNarray[3];

4、Void(*funA(int,void(*funB)(int)))(int);

void(*funA(int,void(*funB)(int)))(int);

void(*funA(参数))(int);

使用Typedef:

typedefvoid(*PTR_TO_FUN)(void);

PTR_TO_FUNfunA(int,PTR_TO_FUN);

四、Typedef与define

Typedef是起别名,define是替换。

例如:

typedefint*PTR;

PTRa,b;

此时a,b都是指针变量。

#definePTRint*

PTRa,b;

此时等同于

int*a,b;

只有a为指针变量,而b为整型变量。

文档评论(0)

132****1508 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档