const & define

来源:互联网 发布:淘宝发货前申请了退款 编辑:程序博客网 时间:2024/06/10 07:33

const 定义常量。

const 在*前,锁定的是不能通过(*指针变量)的改变来操作指针所指向变量的改变(如果指针指向的变量通过其他途径改变了(比如赋值),那么(*指针变量)的值也会跟着改变);const在*后,锁定的是指针变量不能修改。如果指针要指向的变量为常量,则const必须在*之前,保持不可更改性。指针的目的是通过间接的方式,修改变量。const * 则把这种间接修改的方式给阻断了,只保留了间接读取的功能。

const可以节省空间,避免不必要的内存分配。


define

宏的副作用:在使用的时候,尽量避免做计算操作;宏是将代码复制到对应的位置,为了保证代码的稳定,要尽可能地使用括号。

好处:也有其不可替代性。在实际开发过程中,是有可能临时拼接生成变量名的。不需要在战区为函数单独压栈,用空间换取栈区的消耗。

eg:

#define CONTACT(x, y) x##y // 拼接字符串(例如在抽取单例的宏时,定义 shared##className)

那么:CONTACT(user, Name)  =>  userName

#define TO_STR(x) #x // 转换字符串

那么:TO_STR(llllllldlaslfj)  => llllllldlaslfj


0 0