社区
C++ 语言
帖子详情
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
symbol_bc
2008-04-14 09:59:00
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
...全文
172
13
打赏
收藏
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icosagon
2008-04-16
打赏
举报
回复
主要用来定义指针类型的变量的
MagiSu
2008-04-16
打赏
举报
回复
typedef struct A {} B;
A是一个tag,如果是C的话就必须按照struct A使用。C++则不必。
B是一个type,也就是直接的一个类型。
liveforme
2008-04-16
打赏
举报
回复
学习学习
ytfrdfiw
2008-04-16
打赏
举报
回复
在C++里面,不用typedef struct MyStruc{} OtherStruct;
加上这个typedef是个多余,这是C的写法。
WuBill
2008-04-16
打赏
举报
回复
所以在C++的结构这点上,基本不存在取别名,直接把你所希望的别名作为结构名就行了
WuBill
2008-04-16
打赏
举报
回复
在定义结构这点上,主要是为了和C一致
C中:
struct Test{
int a;
};
这时,如果要定义Test对象,就必须是:struct Test t;
如果写成
typedef struct tagTest{
int a;
}Test;
就可以是直接写 Test t;
在C++中,实际上struct几乎可以说是多余的,只是为了和C一致才留了下来
C++,struct和class除了默认访问属性不同外,其他完全一样
在C++中:
struct Test{
int a;
};
就可以直接写Test t;
在C++中class 和struct实际就是名字游戏,留下struct只为了让C程序员更易接受
不想低调
2008-04-14
打赏
举报
回复
lz说的没错 就是给结构取个别名
薛定谔之死猫
2008-04-14
打赏
举报
回复
typedef用来生成alias,像宏一样,可以简化输入
ppzzhhsky
2008-04-14
打赏
举报
回复
只是一种习惯
便于阅读程序的人方便
Treazy
2008-04-14
打赏
举报
回复
[Quote=引用楼主 symbol_bc 的帖子:]
自定义结构时,用typedef和不使用有什么区别?我觉得不用好像也行
[/Quote]
方便:可以自定义类型名
能简化复杂类型
实用
OenAuth.Core
2008-04-14
打赏
举报
回复
这个作用是很强大的,功能简单点说就是给结构体和类起一个别名,比如定义一个结构体或类时:
struct test{
int a;
};
那么你要使用时就必须用下面的格式:
struct test a;
如果你用下面这样定义:
typedef struct test{
int a;
} test;
就可以这样使用 :
test a;
不过现在新版的c++不用TYPEDEF也可以直接用类类名来实现类,不过作为养成良好的编程习惯来说,建议还是加上typedef比较好
langhua0001
2008-04-14
打赏
举报
回复
就是为了方便才用的
wuyu637
2008-04-14
打赏
举报
回复
的确是没有什么区别。不过就是如果你使用了typedef的话,会方便一点。。
struct A{};
struct A a;
==============================
typedef struct B{};
B b;
《C经典面试》编译链接、指针、内存bug、函数、其它
内存bug:内存越位、内存覆盖、
使用
非法内存、内存泄露等。 4.函数:
自定义
函数、内联函数、回调函数、变参函数、递归函数、库函数等 5.其它:自动类型转换、数据溢出、
结构
体对齐、volatile、
typedef
、assert宏、...
C语言中的
typedef
详细
使用
方法
1:C中的
typedef
直译过来的语句,就是类型定义,它被发明出来的初衷就是为了,书写上的方便。我们可以用
typedef
来定义自己习惯
使用
的数据类型名称,可以替代自己所熟悉的基本类型、数组类型、指针类型以及自己定义的
结构
体类型、共用体类型、枚举类型等。另外类型定义如果,在每个函数内部定义,那么它的
使用
范围就是此函数内部,不能再其他函数中
使用
这个别名来定义变量,
结构
体等。
typedef
是编译阶段处理,会占用内存中的空间,如嵌入式系统中,会占用ROM或Flash中的空间,自然也需要
时
间去执
行
这段代码。
typedef
和define的
区别
与用法
typedef
关键字和#define有一种共同的作用,为一种类型创建
自定义
的名字,如
typedef
int myint; #define myint int 是一样的,但是他们之间仍然有很大的
区别
。
typedef
语句是在编译过程中被解析的,而#define是在编译之前的预处理过程中被解析的。#define所进
行
的只是对
自定义
别名的简单替换,而
typedef
则要灵活得多。总的来说,typ
C语言学习笔记---
typedef
简介
在单片机和操作系统中
typedef
会经常用到,它可以为某一个类型
自定义
名称。和#define比较类似。但是又有不同的地方。
typedef
创建的符号只能用于数据类型,不能用于值。而#define 创建的符号可以用于值。
typedef
是由编译器来解释,而不是预处理器。
typedef
使用
起来更加灵活。 下面
使用
typedef
定义一个数据类型 int main() {
typedef
unsigned char BYTE; BYTE c = 10; printf("%d \r
com
使用
自定义
数据类型(UDT) [转]
十分感谢你详细的解答,让我弄明白了不少东西!我是COM的初学者,虽然看了《COM 本质论》之类的书,不过都是看着
时
觉得
有道理,
好像
明白了什么!真动手作东西
时
还是想法转不过弯来!现在感觉对接口的用处体会深了一点。 不过你说SafeArray中的元素不能
使用
struct这种数据类型,我有点疑惑。我在接口中有这么个函数就是传SAFEARRAY的,元素是
自定义
的
结构
。在VB中调用该接口函数也可以
C++ 语言
64,849
社区成员
250,501
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章