C/C++知识点分享(12)

作者: 307656af5a04 | 来源:发表于2019-07-08 06:33 被阅读3次

    1.内联函数和宏的差别?

    答:内联函数和普通函数相比可以加快程序运行的速度,因为不需要中断调用,在编译的时候内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的替换。内联函数要做参数类型检查,这是与宏相比的优势。

    Inline是指嵌入代码,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。对于短小的代码来说,inline可以带来一定效率的提升,而且和C时代的宏函数相比,inline更安全可靠。可是这是以增加空间消耗为代价的。

    Inline一般只适用于:一个函数被不断地重复调用;函数只有简单的几行,且函数内不能含有for while switch语句。

    2.delete与 delete []区别

    delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。在More Effective C++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存。”delete与New配套,delete []与new []配套

    3.求下面函数的返回值

    int func(x)
    {
    int countx = 0;
    while(x){
    countx ++;
    x = x&(x-1);
    }
    return countx;
    }
    假定x = 9999。

    解析:返回值是8思路:将x转化为2进制,看含有的1的个数

    相关文章

      网友评论

        本文标题:C/C++知识点分享(12)

        本文链接:https://www.haomeiwen.com/subject/olswhctx.html