上午一面,15分钟,内容如下:
(1)C语言中,为什么写宏时要使用 do{}while(0);包起来?
(2)C++中使用C中函数,为什么要使用“extern "C" ”?
(3)2个集合,判断一个是不是另一个的子集?
(4)数据库中索引列数据能不能有相同的?
(5)写一个函数,求一个集合的所有子集,
QQ一面
。(6)Unix的内存管理是怎么实现的?
上海龙凤1314 shlf (7)笔试的附加题(100囚徒)。
注:
上海龙凤1314 shlf 关于extern "C"声明:
(1)在头文件中使用extern "C"声明,声明函数为C语言编制的函数。这样在C++语言编制的程序中直接加载该函数的头文件即可。
例如:头文件c.h:
上海龙凤1314 shlf extern "C"{
int a(int);
上海龙凤1314 shlf };
实现文件c.c:
int a(int b){
return b;
上海龙凤1314 shlf }
上海龙凤1314 shlf C++使用程序:
上海龙凤1314 shlf #include "c.h"
上海龙凤1314 shlf int a(char *p){
上海龙凤1314 shlf return *p;
}
上海龙凤1314 shlf int main(){
上海龙凤1314 shlf int b = 1;
cout << a(b);
}
(2)C函数不是自己编制的,在C++语言中使用C语言编制函数,要写上extern "C"声明,
管理资料
《QQ一面》(http://gdyhdog.com)。例如:头文件c.h:
上海龙凤1314 shlf int a(int);
实现文件c.c:
int a(int b){
上海龙凤1314 shlf return b;
上海龙凤1314 shlf }
上海龙凤1314 shlf C++使用程序:
extern "C"{
上海龙凤1314 shlf #include "c.h"
};
int a(char *p){
return *p;
}
int main(){
int b = 1;
cout << a(b);
}