knight_lxf 发表于 2013-8-31 00:31:46

keil MDK 在0x5C(字符‘\’)的bug问题,求指导!

正在学习uC/OS-II   基于STM32 USART重构printf函数结果在判断字符遇到这个bug代码如下void UsartPrintf(char *pstrbuff)
{
        while(*pstrbuff)
        {
                if('\'==(*pstrbuff))
                        pstrbuff++;
        }
}这时Keil MDK编译器会报错“missing closing quote”。换成如下代码则该错误消失void UsartPrintf(char *pstrbuff)
{
        while(*pstrbuff)
        {
                if('n'==(*pstrbuff))
                        pstrbuff++;
        }
}网上搜是keil的bug, 在论坛里搜了个 是KC51的 可能是安装问题 不怎么好用我现在使用的时Keil V4.10不知有哪位大牛遇到过。求教

Goselff 发表于 2013-8-31 00:36:57

\是转义字符,如果你要表示\本身为一个字符,你应该使用'\\'而不是'\'

knight_lxf 发表于 2013-8-31 00:49:25

我二了   其实可以换种写法   如下void UsartPrintf(char *pstrbuff)
{
        while(*pstrbuff)
        {
                if(0x5C==(*pstrbuff))
                        pstrbuff++;
        }
}

knight_lxf 发表于 2013-8-31 10:49:37

Goselff 发表于 2013-8-31 00:36 static/image/common/back.gif
\是转义字符,如果你要表示\本身为一个字符,你应该使用'\\'而不是'\'

{:handshake:}实测可用受教了

guowanling8061 发表于 2013-8-31 11:00:19

Goselff 发表于 2013-8-31 00:36 static/image/common/back.gif
\是转义字符,如果你要表示\本身为一个字符,你应该使用'\\'而不是'\'

赞成此君说法!!
页: [1]
查看完整版本: keil MDK 在0x5C(字符‘\’)的bug问题,求指导!