小弟使用ICC AVR编译器,最近做一个项目时遇到了const的问题,不是很明白,希望能得到大虾的指导~ 函数功能是由键盘得到一个整型数,在函数里主要部分是这样的: unsigned char str[6];//存储按键值的数组 //---- //得到按键值,依次赋给str 0~4 最后一位赋值'\0' //---- value=atoi(str);//调用系统atoi函数,得到整型值。这个函数是没有问题的,能正确把字符串转换为整型 Uart0_SendStr(str);//同样的str传给串口发送就不行了,会发送一堆的数据,似乎是从flash中读的数据。 字符串发送函数是自己写的,具体如下: //------------------------------- //send char with uart 0 void Uart0_SendChar(unsigned char x) { while (!(UCSR0A&(1<<UDRE0))); UDR0=x; } //send string with uart 0 void Uart0_SendStr(const unsigned char *addr) { while(*addr!='\0') { Uart0_SendChar(*addr++); } } Uart0_SendStr函数的参数为:(const unsigned char *addr) 系统中atoi的参数定义为:(CONST char *) 我现在最不明白的就是这两个的区别是什么?请大虾指点迷津,不胜感激~~ |