今天看到一个东软的面试题,是这么说的“如何在一个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