sum@@YAHHH@Z)问题出在哪里呢?在main.cpp里调用了sum.c,也就是说在C++程序里调用了C程序,此时如果没有作相应处理将会出现链接错误。extern "C"表示编译生成的内部符号名使用C约定。C++调用C,extern "C" 的作用是:让C++连接器找调用函数的符号时采用C的方式本文开头提出的笔试题可以这样修改:执行成功相信到这里差不多明白了在C中引用C++函数执行:test1.obj : error LNK2019: 无法解析的外部符号 _sum,该符号在函数 _main 中被引用一般我们都将函数声明放在头文件,当我们的函数有可能被C或C++使用时,我们无法确定被谁调用,使得不能确定是否要将函数声明在extern "C"里,所以,我们可以添加利用以上声明形式就可以综合运用了。

C和C++混合编程问题

C和C++混合编程问题

C和C++混合编程问题

C和C++混合编程问题

C和C++混合编程问题