typedef与struct的使用,C++中struct变量声明可以省略struct

前言

在定义结构体KeyFrameInfo给出如下警告,提示结构体没有使用别名,即typedef没有起作用。消除该警告的方法为去掉typedef 或者补充别名。由于typedef和struct经常结合使用,在使用细节上认知有点模糊,因此,对此进行了查阅和整理。

// warning: ‘typedef’ was ignored in this declaration typedef struct KeyFrameInfo
typedef struct KeyFrameInfo
{
    const std::string mTimeStamp;
    cv::Mat mDepth;
};

struct类型定义与其变量的声明

用struct可以自定义数据类型,Person是定义的结构体数据类型的名字,类似于int。

struct Person // 结构体数据类型的定义
{
    int age;
    string name; 
};

声明结构体类型变量有两种方式,一种是在定义时声明,另一种是需要时声明,类似于int a, b。注意:针对需要时声明,C与C++有所不同,C必须加上struct而C++不需要。C中为了简化声明struct变量,因此常在类型定义时与typedef结合使用。换言之,对于C++,其实可以不与typedef结合使用

struct Person // 结构体数据类型定义时声明变量
{
    int age;
    string name; 
} jack, lee;

struct Person kangkang;  // C/C++语言,需要时声明变量(C语言,必须加上struct)
Person kangkang;  // C++语言,需要时声明变量

typedef是为已有类型名取新的别名,当typedef与struct定义体联合使用时,则此时,定义体紧跟着的不再是struct变量,而是struct类型的别名。

typedef struct Person // 用typedef为struct Person起别名Person
{
    int age;
    string name; 
} Person;
Person kangkang;  // 此时对于C来说,变量的声明也可以不加struct
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值