`

结构体前面加不加typedef有什么区别?

阅读更多

结构体前面加不加typedef有什么区别?

为什么c程序中定义结构时经常要用到typedef呢?如:
typedefstruct_am_win_menutext{
intidc
intmessage
}am_win_menutext
为什么不直接把结构名定义为am_win_menutext然后使用就可以了。
取个类型的别名有什么作用呢?
---------------------------------------------------------------
那是因为不取别名的话,每次定义都要加struct
---------------------------------------------------------------
直接把结构名定义为am_win_menutext然后使用
这样你在使用时必须这样
structam_win_menutextmyval
定义了别名之后就可以
am_win_menutextmyval
这样可以更清晰。
---------------------------------------------------------------
主要在c语言里这样使用使得更方便.
c++
就不用typedef也可以直接使用结构体名.

////////////////////////////////////////////////////////

c++中使用:

structtest
{
intxy
}
就可以定义一个名为test的结构体,但c中很可能编译通不过。c语言并不支持在struct后使用标示符定义结构体的名字,test将会被忽略,这相当于定义了一个没有名字的结构体。若定义一个该结构体对象testmt将会提示未定义的test错误信息。所以,在c语言中,一般使用typedef来定义结构体,上面的例子可以改为:

typedefstruct_test{
intxy
}test

_test要不要都可以。并且,第一个大括号不能像原来那样随便的换行写(因为是typedef)。

分享到:
评论

相关推荐

    结构体和共用体sruct union typedef

    讲述了 结构体 共用体 struct link 枚举 typedef

    C语言程序设计:结构体.pptx

    声明结构体类型时不分配存储单元,使用该类型定义变量时才分配存储单元。 先定义结构体类型,再定义结构体变量;声明结构体类型的同时定义结构体变量;说明 结构体类型与结构体变量概念不同 类型:不分配内存; 变量:...

    C编程小技巧??结构体强制类型转换

    前些天看一款数据库语法解析器的代码,其中的词法分析语法解析阶段,利用一个结构体存储所解析的SQL语句的类型,然后根据这个类型将改结构体强制转换为对应的另一结构体并赋值给他,以便做进一步的执行工作。...

    结构体 c语言 实现多项式加减

    结构体 c语言 实现多项式加减

    C# 结构体集合元素属性不可修改疑惑

    背景:用C#的人都知道结构体在C#中是值类型的,由于这个原因出现了一个有趣的问题,那就是结构体集合通过数字索引修改对应属性的值能不能影响到集合中的结构体呢?答案很多人可能会说不能,因为结构体是值类型的那是...

    C++结构体参数与结构体指针参数区别Demo

    C++结构体参数与结构体指针参数区别Demo(资源包括C++源程序和编译好的exe文件)

    C语言结构体的大小是如何计算的?(结构体对齐)

    【C语言】结构体的大小是如何计算的?(结构体对齐)

    计算机结构体

    结构体

    跟涛哥一起学嵌入式 29:为什么很多人编程喜欢用typedef?.pdf

    C语言typedef定义类型精讲(超详细),typedef的常用使用方法:与结构体、数组、指针、函数指针、枚举的结合使用;使用typedef的优势:不仅可以让代码更加简洁,还可以增加代码的可移植性。使用typedef需要注意的一些...

    file结构体和inode结构体

    文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。...

    一种快速清空结构体的方法

    先自定义一个结构体,比如: struct Table{short int a;long b;short intc;long d;};struct Table Tab[10];...以下的函数即是用于清空结构体的,...但是希望大家有什么好的算法,也分享出来给大家,大家一起学习进步。

    第8讲-结构体与结构体数组

    讲解区分结构体与结构体数组:结构体的引出、结构体变量的定义和引用、结构体数组

    采用类似GPIO_TypeDef的方式,定义Led_TypeDef结构体类型,用结构体类型设置led参数,用固定占空比闪烁

    采用类似GPIO_TypeDef的方式,定义Led_TypeDef结构体类型,用结构体类型设置led参数,用固定占空比闪烁; 2. 使用说明: 通过修改宏定义可以修改开关时间; 通过查看头文件可以方便移植到不同硬件上; 3. 适合人群...

    网络编程之发送结构体.zip

    网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体网络编程之发送结构体...

    利用串口传输结构体数据

    写在前面: 本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。 一、涉及到的知识点 C语言结构体大小及对齐...

    OPCUA读写结构体示例

    OPCUA读写复杂结构体

    结构体内存对其计算结构体大小

    结构体内存对其计算结构体大小,大神总结,很有用,结构体内存对其计算结构体大小,结构体内存对其计算结构体大小结构体内存对其计算结构体大小

    c、c++结构体格式化(结构体反射)

    该dll库通知pdb文件分析结构体字段位置,并根据类型格式一个完整字符串,极大降低了开发者工作量。 1、可通过cdump\Release\cdumpTest.exe 查看执行结果 2、windows xp 以上系统均支持 3、基础版只提供32位,支持的...

    java 与C语言传递结构体数据

    描述:为了解决java与C结构通信过程中结构体解析问题。 主要功能:能友好的用java处理任何发送的C结构体对象,并且能发送java对象转换成C结构体接收的二进制。 功能说明 1、基于spring框架开发 2、对于结构体定义...

    JNA 复杂结构体传递

    JNA 复杂结构体传递 结构体数组,结构体指针 查询很多资料才整合!

Global site tag (gtag.js) - Google Analytics