在CPP文件中包含C文件

 

今天看到一個東軟的面試題,是這麼說的“如何在一個C++文件中包含一個C文件呢”

看到後,我的第一反應是直接include不就可以了嗎?然後VC裏面測試。結果是可以的,但是這樣是正確的嗎?感覺似乎有點不是很正確,於是百度,發現百度上幾乎沒有這方面的東西,最終找到一個,說有兩種方式,如下:

    第一種方法:代碼如下:  

1 extern "C"{
2     #include "a.c"
3 }
經測試結果是正確的,可以正常執行

    第二種方法:代碼如下:  

這個的前提是你先做好a.h
 
1 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 }
C.cpp
 
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章