5、cpp的enum\union\inline\nullptr

1、enum枚举类型

和C的差别,在定义变量时可省略 enum关键字

enum o_type{o_1,o_2}
/*C和C++98*/
enum o_type a = o_1;  //C
o_type a = o_1;       C++

/*
C++11之后
定义enum,可指定枚举变量的数据类型
*/
enum class o_type:int {o_1,o_2}; //完整写法

enum class o_type{o_1,o_2}; //简化

enum o_type{o_1,o_2};       //简化

o_type a = o_type::o_1;

2、union共用体

在任意时刻,联合中只能有一个数据成员可以有值。当给联合中某个成员赋值之后,该联合中的其它成员就变成未定义状态了。

union typedata{
   char cval;
   int ival;
   double dval;
};

typedata x;
//sizeof(x)=8;

3、inline

为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。

关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅将 inline 放在函数声明前面不起任何作用。

4、nullptr

NULL在C++中的定义,NULL在C++中被明确定义为整数0

在C中,NULL通常被定义为如下:#define NULL ((void *)0)

C++之所以做出这样的选择,根本原因和C++的函数重载机制有关。

nullptr如何使用

nullptr关键字用于标识空指针,是std::nullptr_t类型的(constexpr)变量。它可以转换成任何指针类型和bool布尔类型(主要是为了兼容普通指针可以作为条件判断语句的写法),但是不能被转换为整数。

char *p1 = nullptr;     // 正确
int  *p2 = nullptr;     // 正确
bool b = nullptr;       // 正确. if(b)判断为false
int a = nullptr;        // error

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值