在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 }

结果如下图所示:

在CPP文件中包含C文件_第1张图片a>

 

这样我就有不是很清楚,也没搞明白,这种方式在什么情况下会出错,希望大家给我点建议

我的博客:www.dutycode.com

你可能感兴趣的:(c,面试,File,测试,百度,include)