typedef在c语言中是什么意思

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型【int,char等】和自定义的数据类型【stuct等】。

typedef在c语言中是什么意思

typedef是C/C++常用语法,typedef作用,归结起来,可以分为四种:

1、定义一种类型名

常规的应用中,想要定义两个字符指针,写下如下代码: char *a, b

(1)char* a,b;

立即学习“C语言免费学习笔记(深入)”;

(2)char c=’m’;

(3)a=&c;

(4)b=&c;

上述代码是错误的,只有a为字符指针,b仍旧为字符变量。通过#define进行宏定义,仍然是无效的,因为宏定义仅仅是字符替换。

以下则可行:

(1)typedef char* PCHAR;

(2)PCHAR pa, pb;  

2、跨平台移植

程序编写中,如果考虑到平台移植的因素,则需要从代码中抽象出硬件层的差异,例如,变量所占空间,端模式等等。 

考虑一个浮点型变量,在不同的硬件平台上,所占据的空间有可能不同,此时,可以采用typedef将其定义到单独的头文件内,该头文件是纯粹抽象硬件相关的内容:

(1)typedef float REAL;

(2)typedef short int INT16;

(3)typedef int INT32

(4)…

这样的话,如果将来考虑到程序的移植,只需要修改该头文件即可。

3、为复杂的声明取别名

复杂的声明形如:void (*b[10]) (void (*)());

意思:首先*b[10]为指针数组,它里面的十个元素全是指针。到底是什么指针呢,是一个返回类型为空,形参为空的函数指针。

这种复杂的声明,可以用typedef进行简化: 

首先:声明后面的函数指针:

(1)typedef void (pFunParam *)();

接着声明前面的指针数组:

(1)typedef void (*pFunx)(pFunParam);

原声明的最简化版:

pFunx b[10];

本文档在撰写过程中,参考了网络博客typedef用法

里面提到一个复杂的声明:

(1)doube(*)() (*e)[9];

而然这个声明在gcc下编译时不通过的,按照作者的本意,似乎应该这样声明:

(1)double (*(*e)[9])();

e是一个指向9维数组的指针,数组内为函数指针,该函数指针形参为空,返回类型为double。

这样的话,应该采用这样的typedef来简化声明:

typedef (*(*ptr)[9])();

推荐教程: 《c语言教程》

以上就是typedef在c语言中是什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2492442.html

(0)
上一篇 2025年3月5日 01:10:23
下一篇 2025年2月23日 07:43:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • c语言中double是什么意思

    c语言中double的意思是将一个变量定义为双精度实型变量,也就是说赋给变量的值将以双精度实型格式存储在内存中。 double是C语言的一个关键字,bai代表双du精度浮点型。 占8 个字节(64位)内存空间zhi。其数dao值范围为1.7…

    2025年3月5日
    200
  • c语言绝对值怎么表示

    在C语言中,绝对值可以使用库函数fabs或者abs来表示,fabs表示对double型数据取绝对值,abs表示对int型数据取绝对值。 在C语言中,绝对值可以用库函数fabs或abs来表示。 fabs表示对double型数据取绝对值。 ab…

    2025年3月5日
    200
  • c语言文件读写函数有哪些?

    c语言文件读写函数有:“fgetc”和“fputc”(字符读写函数)、“fgets”和“fputs”(字符串读写函数)、“freed”和“fwrite”(数据块读写函数)、“fscanf”和“fprinf”(格式化读写函数)。 对文件的读和…

    2025年3月5日
    200
  • 带你了解C语言中的Sleep函数(附代码)

    Sleep函数: 功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   登录后复制 注意:   立即学习“C语言免费学习笔记(深入)”; 在VC中使用带上头文件#include ,…

    2025年3月5日
    200
  • putchar函数在C语言中是什么意思

    putchar函数在C语言中表示字符串输出函数,putchar函数的功能是在终端(显示器)输出单个字符。函数语法格式:【int putchar(int ch)】,其中,ch表示要输出的字符内容。 putchar函数是c语言中的字符输出函数,…

    2025年3月5日
    200
  • c语言代码如何实现贪吃蛇动画

    c语言代码实现贪吃蛇动画的方法:首先确定基本思路,蛇每吃一个食物蛇身子就增加一格;然后用UP,DOWN,LEFT,RIGHT控制蛇头的运动,而蛇身子跟着蛇头走;最后每后一格蛇身子下一步走到上一格蛇身子的位置。 基本思路:  蛇每吃一个食物蛇…

    2025年3月5日
    200
  • c语言中putchar()的功能是什么?

    putchar()是c语言中的一个函数,功能是:向终端输出一个字符。语法结构为“int putchar(int char)”,可以把参数char指定的字符(一个无符号字符)写入到标准输出stdout中。 putchar()是c语言中的一个函…

    2025年3月5日
    200
  • c语言include<stdlib.h>什么意思?

    c语言“include”的意思是:头文件即“standard library”标准库头文件。该文件包含了的C语言标准库函数的定义“stdlib”;包含了C、C++语言的最常用的系统函数。 <img src="D:pic/20…

    2025年3月5日
    200
  • c语言getch()的用法是什么?

    在c语言中,getch()函数用于从stdio流中读字符,即从控制台读取一个字符,但不显示在屏幕上;语法为:“int getch(void)”,返回读取的字符。 C语言中getch()函数 功 能: 从stdio流中读字符,即从控制台读取一…

    2025年3月5日
    200
  • c语言文件读写操作有哪些?

    c语言文件读写操作有:1、读写文件中字符的函数,代码为【int fgetc(FILE *stream)】;2、读写文件中字符串的函数,代码为【int fputs(char *string,FILE *stream)】。 c语言文件读写操作有…

    2025年3月5日
    200

发表回复

登录后才能评论