typedef是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typedef是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A

typedef struct是定义一个标识符及关键字的别名,无具体含义。,它是语言编译过程的一部分,为了使用结构体方便。

例:typedef struct tagMyStruct MyStruct。

因此,MyStruct实际上相当于struct tagMyStruct,可以使用MyStruct varName来定义变量。

在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。

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

在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

扩展资料:

typedef struct 结构名:

 

类型 变量名; 

类型 变量名; 

... 

 结构别名; 

//结构别名:只是结构的标示符——结构体类型

在C语言中,struct不能包含函数。在C++中,对struct进行了扩展,可以包含函数。

typedef常用来定义关键字、冗长的类型的别名。 宏定义只是简单的字符串代换(原地扩展),而typedef则不是原地扩展,它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变 量的功能。

参考资料来源:百度百科—typedef

这个声明是啥 typedef void foo();意思是? [关闭]

【中文标题】这个声明是啥 typedef void foo();意思是? [关闭]【英文标题】:What does this declaration typedef void foo(); mean? [closed]这个声明是什么 typedef void foo();意思是? [关闭] 【发布时间】:2015-02-13 01:04:54 【问题描述】:

我不明白typedef void interrupt_handler(); 的含义。有人可以举一些例子来解释吗?

typedef void interrupt_handler();

【问题讨论】:

【参考方案1】:

这意味着interrupt_handler 是函数的类型同义词,它返回void 并且不指定其参数(所谓的旧式声明)。请看下面的例子,其中foo_ptr 用作函数指针(这是不需要括号的特殊情况):

#include <stdio.h>

typedef void interrupt_handler();

void foo()

    printf("foo\n");


int main(void)

    void (*foo_ptr_ordinary)() = foo;
    interrupt_handler *foo_ptr = foo; // no need for parantheses

    foo_ptr_ordinary();
    foo_ptr();

    return 0;

【讨论】:

我有这个函数 void cpu_boot(uint cores, interrupt_handler bootfunc, uint serialno) 并且在参数 bootfunc 中我想传递以下参数:Task boot_task, int argl, void* args。任务类型为 typedef int (* Task)(int, void*);我该如何实施?类似包装函数的东西? @cmbasnett @LefterisSarantaris:我宁愿单独提出问题。不要忘记描述您已经尝试过的内容,解释您的问题并添加一些最小的示例。【参考方案2】:

这是一个带有特定签名的function pointer 的typedef 声明(在本例中是一个带有void 返回且没有参数的函数)。

见What is a C++ delegate?(最佳答案,选项3)

【讨论】:

以上是关于typedef是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

typedef enum与typedef struct分别是啥意思

C++中typedef是啥意思啊

“typedef __u16 __bitwise __le16;”是啥意思?在Linux内核中是啥意思?

typedef是啥意思?

“typedef void (^Something)()”是啥意思[重复]

“typedef void (*Something)()”是啥意思