QQ一面

上午一面,15分钟,内容如下:
(1)C语言中,为什么写宏时要使用 do{}while(0);包起来?
(2)C++中使用C中函数,为什么要使用“extern "C" ”?
(3)2个集合,判断一个是不是另一个的子集?
(4)数据库中索引列数据能不能有相同的?
(5)写一个函数,求一个集合的所有子集。
(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"声明。
例如:头文件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);
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值