字符串问题请教

dsoyy 2014-09-29 05:55:16

定义:
char ACK_Mode[20]="\r\n+FYMODE: 1,2\r\n";
typedef enum
{
UN_INIT = 0,
PCBA_TEST_MODE,
DEVICE_TEST_MODE,
TEST_FINISH_MODE,
ACTIVE_MODE,
DELIVE_MODE,
CARSHOP_MODE,
RECYCLE_MODE
}RUN_MODE;

RUN_MODE Mcu_Mode = DEVICE_TEST_MODE;

我有如下两种写法,请大家看看区别在哪?

写法1:

ACK_Mode[11] = (int)Mcu_Mode +'0';
ACK_Mode[13] = (int)Charge_Status +'0';
Sent_String(ACK_Mode,strlen(ACK_Mode)); //打印出来的结果是:+FYMODE: 1,2

写法2:
ACK_Mode[11] = 5 +'0';
ACK_Mode[13] = (int)Charge_Status +'0';
Sent_String(ACK_Mode,strlen(ACK_Mode)); //打印出来的结果是:+FYMODE: 5,2

为什么写法1的结果不是:+FYMODE: 2,2?
ACK_Mode[11] = (int)Mcu_Mode +'0'; 这样写错在哪里了??

请大家指点分析,感谢!
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dsoyy 2014-09-30
  • 打赏
  • 举报
回复
找到问题了,乌龙。
赵4老师 2014-09-30
  • 打赏
  • 举报
回复
因为 Mcu_Mode==1
dsoyy 2014-09-29
  • 打赏
  • 举报
回复
这是用IAR编译的。 刚刚换成WINTC就正常了。 是不是写法一不够严谨?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧