c++小知识

1、a++不能作为左值

    int a = 10;
    ++a = 1;//ok
    a++ = 1;//error
a++是先使用a的值作运算,然后再使a的值增加1,如果允许执行a++左值的赋值运算,那么就要在赋值运算之后使a值再增加1,这样赋值运算就没意义了,a最终的结果不是赋值后的结果。

2、#error指示符

指令将使编译器显示一条错误信息,然后停止编译

3、ASSERT 和 VERIFY

在DEBUG模式下,两个宏的功能是一样的,两者都对表达式进行计算,如果表达式为非0,那么什么也不做,如果表达式为0,那么输出诊断信息;在RELEASE模式下,ASSERT不会对参数里的表达式进行计算,VERIFY会计算里面的表达式(如果是函数,将会调用该函数) 
部分定义如下:

#ifdef _DEBUG
#define VERIFY(f)          ASSERT(f)
#else
#define ASSERT(f)          ((void)0)
#define VERIFY(f)          ((void)(f))
#endif


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值