QQ一面 -管理资料

管理资料 时间:2019-01-01 我要投稿
【www.unjs.com - 管理资料】

    上午一面,15分钟,内容如下:

    (1)C语言中,为什么写宏时要使用 do{}while(0);包起来?

    (2)C++中使用C中函数,为什么要使用“extern "C" ”?

    (3)2个集合,判断一个是不是另一个的子集?

    (4)数据库中索引列数据能不能有相同的?

    (5)写一个函数,求一个集合的所有子集,

QQ一面

    (6)Unix的内存管理是怎么实现的?

    (7)笔试的附加题(100囚徒)。

    注:

    关于extern "C"声明:

    (1)在头文件中使用extern "C"声明,声明函数为C语言编制的函数。这样在C++语言编制的程序中直接加载该函数的头文件即可。

    例如:头文件c.h:

    extern "C"{

    int a(int);

    };

    实现文件c.c:

    int a(int b){

    return b;

    }

    C++使用程序:

    #include "c.h"

    int a(char *p){

    return *p;

    }

    int main(){

    int b = 1;

    cout << a(b);

    }

    (2)C函数不是自己编制的,在C++语言中使用C语言编制函数,要写上extern "C"声明,

管理资料

QQ一面》(https://www.unjs.com)。

    例如:头文件c.h:

    int a(int);

    实现文件c.c:

    int a(int b){

    return b;

    }

    C++使用程序:

    extern "C"{

    #include "c.h"

    };

    int a(char *p){

    return *p;

    }

    int main(){

    int b = 1;

    cout << a(b);

    }

最新文章
推荐文章