打印

MDK下使用c++问题

[复制链接]
4250|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhxi|  楼主 | 2011-1-18 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在使用mdk编写stm32程序时,想要用c++编写,可以.cpp文件#include"string.h"后,就编译报错。
C:\Keil\ARM\RV31\INC\string.h(236): error:  #167: argument of type "const char *" is incompatible with parameter of type "char *"

双击错误后指向:
    { return const_cast<char *>(strrchr(const_cast<const char *>(__s), __c)); }
沙发
zhxi|  楼主 | 2011-1-18 20:17 | 只看该作者
使用mdk自带的例子:C:\Keil\ARM\Examples\C++\Example1
也是同样的错误

使用特权

评论回复
板凳
zhxi|  楼主 | 2011-1-18 20:17 | 只看该作者
#ifdef __cplusplus
extern _ARMABI const char *strrchrstrrchr(const char * /*s*/, int /*c*/) __attribute__((__nonnull__(1)));
extern "C++" char *strrchrstrrchr(char * __s, int __c) __attribute__((__nonnull__(1)));
extern "C++" inline char *strrchr(char * __s, int __c)
    { return const_cast<char *>(strrchr(const_cast<const char *>(__s), __c)); }
#else
extern _ARMABI char *strrchr(const char * /*s*/, int /*c*/) __attribute__((__nonnull__(1)));
#endif

使用特权

评论回复
地板
zhxi|  楼主 | 2011-1-18 20:32 | 只看该作者
string.h中把语句修改成“    { return const_cast<char *>(strrchr(const_cast<char *>(__s), __c)); }”后正常了
但是这样做觉得有点不妥啊。还是MDK的.h文件有bug

使用特权

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

本版积分规则

34

主题

146

帖子

1

粉丝