IAR一个关于变量声明的问题困惑我好久了

2019-03-24 14:03发布


unsigned char len;
void AppUart_putStr(char* str)
{
  len = strlen(str)-1;
  unsigned char index;
  for(index=0;index<len;index++)
  {
    AppUart_putChar(str[index]);
   // delay(1);
  }
}  ///////////////////////////////////////////////////////////如上这段代码  将len声明在函数体外len = strlen(xx) 这句执行后, len就会被赋值而如果像下面这样 

void AppUart_putStr(char* str)
{
  unsigned char len = strlen(str)-1;
  unsigned char index;
  for(index=0;index<len;index++)
  {
    AppUart_putChar(str[index]);
   // delay(1);
  }
} /*****************/在单步调试时候,watch 窗口中观察 len  会说是未定义的  但是index 这个变量 放在函数体内声明却没有问题 难道  获取函数返回值的变量 一定要放在函数外面定义 不知道我这样表述  大家有没有看明白欢迎大家讨论 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
mesada
1楼-- · 2019-03-24 22:23
 精彩回答 2  元偷偷看……
elulis
2楼-- · 2019-03-25 02:11
< :TI_MSP430_内容页_SA7 --> Watch的Expression窗口是看不到局部变量的,不过在Variables窗口是可以看到len这个局部变量的,而且是进入一个函数后会自动的显示哦
457887107
3楼-- · 2019-03-25 04:40
我去试试看  多谢啦

一周热门 更多>

相关问题

    相关文章