今天看到一個東軟的面試題,是這麼說的“如何在一個C++文件中包含一個C文件呢”
看到後,我的第一反應是直接include不就可以了嗎?然後VC裏面測試。結果是可以的,但是這樣是正確的嗎?感覺似乎有點不是很正確,於是百度,發現百度上幾乎沒有這方面的東西,最終找到一個,說有兩種方式,如下:
第一種方法:代碼如下:
1 |
extern
"C" { |
2 |
#include "a.c" |
3 |
} |
第二種方法:代碼如下:
這個的前提是你先做好a.h1 |
extern
"C" { |
2 |
#include "a.h" |
3 |
} |
然後,按照我的第一想法,直接include C文件:測試文件如下:
a.c
1 |
#include <STDIO.H> |
2 |
void
aa(){ |
3 |
printf ( "This is a C file!\n" ); |
4 |
} |
1 |
#include <STDIO.H> |
2 |
$include "a.c" |
3 |
void
main(){ |
4 |
printf ( "This is a CPP file!\n" ); |
5 |
aa(); //調用c文件裏的方法 |
6 |
} |
結果如下圖所示:
a>
這樣我就有不是很清楚,也沒搞明白,這種方式在什麼情況下會出錯,希望大家給我點建議
我的博客:www.dutycode.com