ceph源码学习之c++语法

1.mutable

在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也可以被修改。
例子:
struct A{
int a;
mutable int b;
        }
const  A  a1 = {1,2}
                a1.a = 3;      //错误
                a1.b = 4;     //正确

2.申请内存的几个函数

2.1 malloc与free        -------- 用户空间,堆上动态申请的内存, C++/C语言的标准库函数
       kmalloc 与kfree            ----------内核空间,物理连续
         vmalloc 与vfree:         -------内核空间,物理不连续,虚拟连续

2.2 mmap与munmap -----mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。
2.3 new和delete ------ 是C++的运算符
2.4 posix_memalign和free ----申请内存对齐的内存地址

3.getenv()

val = getenv("环境变量名") 
获取指定环境变量名的值,若没有则返回空字符。

4.unlikely()和likely()

使用likely ,执行if后面语句的可能性大些,编译器将if{}是的内容编译到前面, 使用unlikely ,执行else后面语句的可能性大些,编译器将else{}里的内容编译到前面。这样有利于cpu预取,提高预取指令的正确率,因而可提高效率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值