C和C++混合编程中编译器(VS2008)设置

本文介绍了在Visual Studio 2008(VS2008)中进行C和C++混合编程时的编译器设置。通过调整文件属性,将C文件编译为C代码(/TC)而C++文件编译为C++代码(/TP),以确保编译通过。在链接阶段,由于不同语言的符号表差异可能导致‘无法解析的外部符号’错误,可以通过extern "C"来解决链接指示问题,确保C函数在C++中正确调用。
摘要由CSDN通过智能技术生成

C和C++的公共部分是完全相同的吗?在平台一致的前提下,C++编译器能够编译C的程序吗?好像是可以,但是不一定!

比如内存申请函数calloc中,使用C编译器的时候,你这样做编译通过:

int * pInt= calloc(n,sizeof(int));
但如果编译器是C++的,那么以上语句就通不过编译了,必须这样才行:

int * pInt=( int *) calloc(n,sizeof(int));
是的,C的设计哲学认为程序员知道自己在干什么!但C++的类型检查更为严格。也就是说有些C的工程是不能直接用C++编译器编译,所以对于一个既有C文件又有C++文件的工程,为了保证工程的顺利编译、链接,你可以把所有的C语言翻译成C++语言,这项工作的工作量不是很大,但是对于一个大项目就不好说了,主要是这种行为的level太低,不符合码农的气质。作为码农,我们必须要学会在一个工程下分别编译C和C++文件并链接之。

下面以VS2008作说明:

分别编译很简单:

选择要设置的文件:属性-->C/C++-->高级-->编译为,然后下拉菜单中选择:编译为C代码(/TC) [或者选择编译为C++代码(/TP)]。

这样就对不

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值