上午一面,15分鐘,內(nèi)容如下:
(1)C語(yǔ)言中,為什么寫宏時(shí)要使用 do{}while(0);包起來(lái)?
(2)C++中使用C中函數(shù),為什么要使用“extern "C" ”?
(3)2個(gè)集合,判斷一個(gè)是不是另一個(gè)的子集?
(4)數(shù)據(jù)庫(kù)中索引列數(shù)據(jù)能不能有相同的?
(5)寫一個(gè)函數(shù),求一個(gè)集合的所有子集,
QQ一面
。(6)Unix的內(nèi)存管理是怎么實(shí)現(xiàn)的?
(7)筆試的附加題(100囚徒)。
注:
關(guān)于extern "C"聲明:
(1)在頭文件中使用extern "C"聲明,聲明函數(shù)為C語(yǔ)言編制的函數(shù)。這樣在C++語(yǔ)言編制的程序中直接加載該函數(shù)的頭文件即可。
例如:頭文件c.h:
extern "C"{
int a(int);
};
實(shí)現(xiàn)文件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函數(shù)不是自己編制的,在C++語(yǔ)言中使用C語(yǔ)言編制函數(shù),要寫上extern "C"聲明,
管理資料
《QQ一面》(http://www.lotusphilosophies.com)。例如:頭文件c.h:
int a(int);
實(shí)現(xiàn)文件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);
}