C/C++混编注意事项

来源:互联网 发布:温饱而知廉耻 编辑:程序博客网 时间:2024/06/05 19:18

VS可以支持C/CPP文件的同时存在,这自然是一种进步,不过也会引起许多麻烦。

在CPP里面调用C的函数,有时候会提示符号未定义。原因是在CPP里面调用C的函数在CPP的include里的.h文件在编译的时候是按照C++的语法来编译。

C++和C编译的时候改变了很多,比如

C不支持bool变量,

C++不支持给void函数返回值,

C++中对内存泄漏也检测的更为严格,

C++的类型要比C强,在判断类型的转换上更为严格等等。


这样一编译,C里面的函数就有可能不再是原来的函数,所以为了避免这样的情况,通常在C的头文件中用extern "C" 括起来

#pragma once#include <stdio.h>#ifdef __cplusplusextern "C" {#endifvoid match(char* savename, char* txtFile, int t_time);#ifdef __cplusplus}#endif

在头文件里声明C函数的时候就把C函数用externa "C" 括起来,看到有的代码也有在函数的定义处括起来,作用是一样的。

原创粉丝点击