打印

IAR里用C++进不了用户中断

[复制链接]
1958|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eng588|  楼主 | 2013-3-8 16:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C只是C++的子集,我的IAR工程用C编译正常,用C++编译后进不了用户的中断程序,总是进到PUBWEAK标识的那个中断里,是怎么回事呢
沙发
john_lee| | 2013-3-8 18:27 | 只看该作者
你的中断函数声明需要加上 extern "C"
比如:
extern "C" void EXTI0_IRQHandler(void);    // 函数原型,对于C++程序,需要加上 extern "C",这行可以在头文件中
void EXTI0_IRQHandler(void)     // 函数定义
{
    // do something
}

使用特权

评论回复
板凳
eng588|  楼主 | 2013-3-8 23:37 | 只看该作者
john_lee 发表于 2013-3-8 18:27
你的中断函数声明需要加上 extern "C"
比如:

可以了,谢谢,还想问两个问题,__cplusplus是IAR在使用C++作编译器时自己定义的,还是要程序员手工定义? 还有你用的这个字体很漂亮,请问是什么字体呢?

使用特权

评论回复
地板
john_lee| | 2013-3-9 00:06 | 只看该作者
__cplusplus 是 C++ 标准预定义宏,源代码中可以判断此宏,如果存在,就表示本次编译是采用 C++ 语言编译。
什么字体?你是指 Discuz!代码?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:和平時期做牛馬,戰爭時期當炮灰

82

主题

179

帖子

0

粉丝