中易网

是否能在keil中混合编译c和c++程序

答案:1  悬赏:20  
解决时间 2021-01-17 18:55
是否能在keil中混合编译c和c++程序
最佳答案
keil中支持混合编译C和C++程序, 因为其本质最终都是编译成汇编,所以是可以同时操作的。 
在混合编译时,需要注意以下几点:
1、C文件扩展名必须为.C, C++文件扩展名必须为.CPP, 头文件扩展名必须为.CPP。 如果源文件的扩展名使用错误,会导致编译出错。
2、C语言的头文件,需要加上如下条件编译及限制代码:
#ifdef  __cplusplus
    extern "C" {
#endif
//原本的头文件内容。 
#ifdef  __cplusplus
}  
#endif其功能为,当使用c++编译器编译时,会添加extern "C" {}限制。 这样才可以使C语言的函数声明被C++正确识别。 
3、所有C++文件中需要被C调用的函数,在定义和声明时都需要加上
extern "C"
可以是单独的函数,比如
extern "C" void func_cpp_for_c(void)
{
    //...
}也可以是程序段,比如

extern "C"{
    void func1()
    {
    }
    void func2()
    {
    }
}4、编译选项中,C99编译选项需要去掉。如图:

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大众2016新宝来1.4t的车会溜车吗?
杭州四季青今年生意怎样
形容孩子的笑容的词语
朝鲜战争时期老式美国吉普主油箱位置在哪里?
北京宜行科技有限公司怎么样?
求一首英文歌:It's My Home ,一个女生
海岛奇兵星期几有博士
0.7毫米厚的丙纶防水还需做附加层吗
一个男生突然让我打坐。还让我看清静经 什么
dnf测试伤害buff怎么设置
移植第五天了 情绪总是不好老是爱发脾
清朝的黄花梨桌子,不知道现在市场多少钱。
何法成是19几几年出生的
叫人把人打了,对方没受多大伤但是报警了,警
枇杷清茶的好处都有什么啊?
推荐资讯
锦绣布艺地址好找么,我有些事要过去
叠加别墅和联排别墅哪个好
急!网上银行汇款附言怎样填写
网游吧还这么火,我就放心了,逆水寒是什么游
李毅大帝这一脚什么水平
六字复姓有哪些?六个字的姓,作业用,急求!
爱家家政服务有限公司地址在哪,我要去那里办
远水不解近渴,远亲不如近邻。是什么意思
电蒸箱的缺点有哪些?它实用吗?
废旧的伞布可以做风筝吗。如果可以的话。请指
求力天电子 DSP教学 视频 谢谢过来人
穿越火线KD值是什么,我的19.05好不好,是越
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?