typedef struct 在C和C++中的区别

本文探讨了在C和C++中typedef struct的使用区别。在C语言中,typedef仅能为结构体类型创建别名,不能直接用于变量声明;而在C++中,typedef后的结构体类型可以直接声明变量。同时,文章提到了结构体类型的定义和匿名结构体在C与C++中的不同用法,并给出了相应示例。
摘要由CSDN通过智能技术生成

typedef struct 在C和C++中的区别

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。例如:

typedef long byte_4;//给已知数据类型long起个新名字,叫byte_4

typedef与struct结合使用

typedef struct tagMyStruct
{ 
 int iNum;
 long lLength;
} MyStruct;

这段代码实际上完成两个操作:
1.定义一个新的结构体类型tagMyStruct

struct tagMyStruct
{ 
 int iNum; 
 long lLength; 
};

struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。

在C语言中可以用struct tagMyStruct varName来定义变量,但使用tagMyStruct varName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型。而在C++中可以使用tagMyStruct varName来定义变量。

2.typedef为这个新的结构起了一个名字,叫MyStruct。

typedef struct tagMyStruct 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值